如何从HttpResponseMessage中获取对象?

9

我有一个返回HttpResponseMessage的Post方法:

HttpResponseMessage response = 
    Request.CreateResponse(HttpStatusCode.Created, updatedItemDto);

我正在为此编写一些测试,并希望从HttpResponseMessage中获取更新后的项目(特别是ItemId)。我尝试检查该对象,发现它似乎存储在Response.Content中,但我不知道如何从Content中获取它。


你能访问Content属性吗?返回值有什么用途? - rae1
可以的。返回值是一个测试,它将获取物品的ItemID并更新一些值。 - RobVious
因为.Content不是<Item>。 - RobVious
正是我所需要的。谢谢。您介意把这个放在答案中,这样我就可以勾选它了吗? - RobVious
2个回答

5
如果HttpResponseMessage包含已知类的序列化数据模型,则可以使用ReadAsAsync<>()扩展方法进行操作,代码如下:
 MyObject obj = await response.ReadAsAsync<MyObject>();

这是最简单、最容易的方法。

“proper” 是什么意思? - Illuminati
一个已知的数据模型(类) - Emdadul Sawon
1
我相信现在应该是:response.Content.ReadAsAsync<MyObject>() - udog

4

您提到“看起来对象保存在 Response.Content 中”,您可以在调试器中检查响应。

您可能需要将其转换为有意义的内容,例如此响应中所示。

Request.CreateResponse(HttpStatusCode.Created, updatedItemDto) as MyObject;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接