C 中 HttpClient 的簡單使用

2022-06-06 12:51:10 字數 1094 閱讀 6817

當我們在開發客戶端還有少部分服務端程式時,資料需要從 webapi 伺服器取得。在以前我使用的比較多的時 webclient 和 httpwebrequese,在新的 .net 版本中,團隊為其帶來了更多的可選擇性——新的 httpclient。它有著更加靈活的 api。傳送請求和接收響應主要是通過 httprequestmessage 和 httpresponsemessage 這來給你個類,通過屬性 content 獲取 http 響應內容。

httpclient 與 webclient 和 httpwebrequest 相比,有以下幾個主義的

httpclient 例項初始化時不與伺服器網域名稱或者主機位址繫結,也就是說可以通過乙個 httpclient 例項傳送多個不同的請求(比如同乙個 httpclient 請求 

和 兩個伺服器資料)

httpclient 通過設定 defaultheaders 設定 httpheader 並且應用於該例項的所有請求

httpclient 使用可以很容易的處理非同步請求(async / await)

httpclient 提供有與 http method 匹配的方法,比如 get / post / put ...等。

先實現模擬乙個 get 請求,**如下

// 傳入引數 url 為請求位址

除了直接使用與 http method 對應的方法外,還可以單獨構建 httprequestmessage 例項進行請求

async task get(string uri = "";)

", responsetask.result);

});}

}

至於 post 請求,對於初次接觸 httpclient 的人可能顯得有些複雜,比較折騰,另一篇文章再講解。

最後一點,對於不想折騰的人,建議直接使用 restsharp ,簡單好用,上手容易。

**

C 中HttpClient的使用中同步非同步問題

專案中遇到了這樣的問題 第一次 httpresponsemessage response await httpclient.postasync url,null 傳送了乙個post非同步請求 操作了乙個datatable的資料 第二次 又發了乙個post非同步請求,用到了第一步中的datatable...

C 中HttpClient的使用中同步非同步問題

專案中遇到了這樣的問題 第一次 httpresponsemessage response await httpclient.postasync url,null 傳送了乙個post非同步請求 操作了乙個datatable的資料 第二次 又發了乙個post非同步請求,用到了第一步中的datatable...

HttpClient簡單請求和session的保持

httpclient是乙個客戶端的http通訊實現庫,目標是傳送和接受http請求。httpclient維護cookies,session的保持在客戶端就是cookie的體現。httpclinet的session的保持有兩種方式,一種是將httpclient例項儲存於web應用的session中,再...