C#使用HttpClient進行http操作
阿新 • • 發佈:2019-01-10
簡介
在.Net 4.5中增加了一個新的System.Net.Http.HttpClient名字空間(在 System.Net.Http.dll 中)。其中 提供了用於傳送 HTTP 請求和接收 HTTP 響應的API。
基本操作
和以前的HttpWebRequest相比,HttpClient更加簡潔,下面就是一個下載www.baidu.com頁面的示例:
string uri = "http://www.baidu.com/";
HttpClient client = new HttpClient();
string body = await client.GetStringAsync(uri);
除GetStringAsync()
之外,還有GetByteArrayAsync()、GetStreamAsync()、PostAsync ()、DeleteAsync()
等函式,可用選擇使用。
一個重要的特點就是: 所有的函式操作都是非同步的。
獲取響應
最簡單的函式是HttpClient.GetStringAsync()
, 用這個函式的時候,呼叫操作並不會阻塞,我們看不到HttpResponse的相關資訊,如果需要看到Http響應的資訊,可以用如下標準方式:
Product product = null;
HttpResponseMessage response = await client.GetAsync(path);
if (response.IsSuccessStatusCode)
{
product = await response.Content.ReadAsAsync<Product>();
}
return productt;
這裡使用HttpResponseMessage
.