4

我正在尝试使用 Web API 客户端库来使用 Web 服务。我的问题是,当提交函数使用 POST 方法时,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 做错了吗?

4

1 回答 1

5

我只是遇到了同样的问题,就我而言,我通过[Serializable]从类中删除属性来解决它。

我不知道为什么这个属性与反序列化过程冲突,但是我一拿出来,ReadAsAsync方法就按预期工作了。

于 2013-09-25T16:58:52.623 回答