Jam*_*war 4 c#-4.0 asp.net-web-api
我正在尝试使用 Web API 客户端库使用 Web 服务。我的问题是,当提交函数使用 POST 方法时,ReadAsAsync 似乎不想完全取消返回的对象。
如果我将响应作为字符串并手动 deserailize 它工作。(我收到一个 apmsgMessage,其中填充了所有字段)
HttpClient client = GetClient();
var response = client.PostAsJsonAsync("api/robot/Preview", ad).Result;
var msg = response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<apmsgMessage>(msg.Result);
Run Code Online (Sandbox Code Playgroud)
我最初尝试了下面的代码,它返回一个 apmsgMessage 对象,但所有字段都为空。
HttpClient client = GetClient();
var response = client.PostAsJsonAsync("api/robot/Preview", ad).Result;
var msg = response.Content.ReadAsAsync<apmsgMessage>().Result;
return msg;
Run Code Online (Sandbox Code Playgroud)
我的问题是为什么我的原始(PostAsJsonAsync)不返回完全填充的 apmsgMessage。我在 ReadAsAsync 上做错了什么吗?
我刚刚遇到了同样的问题,就我而言,我通过[Serializable]从类中删除属性来解决它。
我不知道为什么这个属性会与反序列化过程发生冲突,但是一旦我把它拿出来,这个ReadAsAsync方法就按预期工作了。