我想了解在两篇文章描述了同样的事情(调用JSON休息Web服务)的差异的原因。HttpClient的文档混乱(JSON休息Web服务)
第1条:Calling a Web API From a .NET Client in ASP.NET Web API 2
第2条:Calling ASP.NET WebAPI using HttpClient
的区别是:
HttpResponseMessage response = await client.GetAsync("api/products/1");
vs
HttpResponseMessage response = client.GetAsync(url).Result;
和
Product product = await response.Content.ReadAsAsync>Product>();
vs
var users = response.Content.ReadAsAsync<Users>().Result;
我的困惑是不是与调用的异步特性我了解这个功能等待声明。我的困惑源于CodeProject示例结尾处的结果(顺便说一下,代码项目示例适用于我)以及Microsoft文章没有它们的事实。
如果我复制微软的文章的代码,我得到编译器警告要我添加任务在我的返回类型。我错过了什么?
感谢
[异步调用异步方法]的可能的重复(http://stackoverflow.com/questions/22628087/calling-async-method-synchronously) – CodeCaster 2015-03-02 14:08:23
这与WebAPI或HttpClient无关,但与async/await无关。在同步调用中,您可以使用'.Result'来同步获取异步调用的结果。参见[同步调用异步方法](http://stackoverflow.com/questions/22628087/calling-async-method-synchronously)。 – CodeCaster 2015-03-02 14:09:34