2013-03-03 94 views
8

我有一個返回值HttpResponseMessage POST方法:如何從HttpResponseMessage獲取對象?

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

我正在寫一些這方面的測試,並想從HttpResponseMessage(特別是ItemId)獲得更新的項目。我試圖檢查對象,它看起來像對象住在Response.Content,但我不知道如何從Content得到它。

+0

你能訪問[Content property](http://msdn.microsoft.com/en-us/library/system.net.http.httpresponsemessage.content.aspx)嗎?什麼是回報正在使用? – rae1 2013-03-03 16:49:59

+0

是的,我可以。返回是在一個測試中,將採取項目的ItemID並更新一些值。 – RobVious 2013-03-03 17:16:48

+0

因爲.Content不是 RobVious 2013-03-03 17:52:04

回答

4

您可以檢查調試器中的響應,因爲您提到「它看起來像對象生活在Response.Content中」。

您可能需要將其轉換爲有意義的事情,比如在this response

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

如果HttpResponseMessage含有序列已知種類的數據模型,那麼你可以使用ReadAsAsync<>()擴展方法是這樣

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

這是最簡單最簡單的方法。

+0

你是什麼意思'正確'? – Illuminati 2016-02-25 00:57:49

+0

已知數據模型(類) – 2016-02-25 06:25:49