2013-02-22 54 views
4

我試圖通過Web API客戶端庫使用Web服務。我的問題是,當提交函數使用POST方法時,ReadAsAsync似乎不想完全去除返回的對象的deserailize。HttpClient響應ReadAsAsync()不完全反序列化對象

如果我以字符串的形式得到響應並手動去除它的效果。 (我得到填充所有字段apmsgMessage)

HttpClient client = GetClient(); 
var response = client.PostAsJsonAsync("api/robot/Preview", ad).Result; 
var msg = response.Content.ReadAsStringAsync(); 
return JsonConvert.DeserializeObject<apmsgMessage>(msg.Result); 

我最初試圖低於它返回一個apmsgMessage對象的代碼,但所有字段爲空。

HttpClient client = GetClient(); 
var response = client.PostAsJsonAsync("api/robot/Preview", ad).Result; 
var msg = response.Content.ReadAsAsync<apmsgMessage>().Result; 
return msg; 

我的問題是,爲什麼不到風度我的原單(在PostAsJsonAsync)返回一個apmsgMessage完全填充。我是否用ReadAsAsync做錯了什麼?

+1

你能分享返回的json的線格式,還有類型'apmsgMessage'嗎? – 2013-02-23 00:56:44

回答

3

我剛剛有同樣的問題,在我的情況下,我通過從類中刪除[Serializable]屬性來解決它。

我不知道爲什麼這個屬性與反序列化過程相沖突,但只要我把它拿出來,ReadAsAsync方法按預期工作。

+0

謝謝,救了我的一天!問題作者應該將此答案標記爲解決方案。 – Kirill 2016-12-22 21:30:52