【问题标题】:How to get an object from the HttpResponseMessage?如何从 HttpResponseMessage 中获取对象?
【发布时间】:2013-03-03 15:49:24
【问题描述】:

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

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

我正在为此编写一些测试,并希望从HttpResponseMessage(尤其是ItemId)获取更新的项目。我尝试检查该对象,看起来该对象位于Response.Content 中,但我不知道如何从Content 中获取它。

【问题讨论】:

  • 你能访问Content property吗?退货有什么用?
  • 是的,我可以。返回在一个测试中,它将获取项目的 ItemID 并更新一些值。
  • 因为 .Content 不是
  • 正是我想要的。谢谢。您介意将其放在答案中以便我检查吗?

标签: asp.net .net asp.net-mvc


【解决方案1】:

如果 HttpResponseMessage 包含已知类的序列化数据模型,那么您可以像这样使用ReadAsAsync<>() 扩展方法

 MyObject obj = await response.ReadAsAsync<MyObject>();

这是最简单的方法。

【讨论】:

  • “正确”是什么意思?
  • 一个已知的数据模型(类)
  • 我相信这是现在:response.Content.ReadAsAsync&lt;MyObject&gt;()
【解决方案2】:

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

您可能需要将其转换为有意义的内容,例如 this response

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

【讨论】:

    猜你喜欢
    • 2016-12-02
    • 2023-03-08
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2010-11-17
    • 2010-11-23
    相关资源
    最近更新 更多