如何从HttpResponseMessage获取对象?

Rob*_*ous 8 .net asp.net asp.net-mvc

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

HttpResponseMessage response = 
    Request.CreateResponse(HttpStatusCode.Created, updatedItemDto);
Run Code Online (Sandbox Code Playgroud)

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

Emd*_*won 5

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

 MyObject obj = await response.ReadAsAsync<MyObject>();
Run Code Online (Sandbox Code Playgroud)

这是最简单易行的方法。


rae*_*ae1 4

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

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

Request.CreateResponse(HttpStatusCode.Created, updatedItemDto) as MyObject;
Run Code Online (Sandbox Code Playgroud)