我想了解在兩篇文章描述了同樣的事情(調用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