1. 程式人生 > >C#使用HttpClient進行http操作

C#使用HttpClient進行http操作

簡介

在.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.