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

2021-09-07 20:38:50 字數 1016 閱讀 8940

專案中遇到了這樣的問題:

第一次 :httpresponsemessage response = await httpclient.postasync(url, null);傳送了乙個post非同步請求 ,操作了乙個datatable的資料

第二次:又發了乙個post非同步請求,用到了第一步中的datatable的資料

剛開始都是非同步方式呼叫,發現最終結果有時候對,有時候不對,除錯才發現是兩次非同步請求之間是相關的,個人覺得有點類似多執行緒之間資料沒有進行同步,所以網上查了很多資料,終於找到以下方法圓滿解決問題。

httpclient中非同步方法的同步呼叫 在system.net.http中,提供了使用http與遠端伺服器通訊的httpclient,但是裡面都是非同步方法,有時候我們並不需要使用非同步操作。這個時候可以使用如下的方式來進行同步呼叫。

同步呼叫的這段**是引用別人的。

class

program

}

下面再把winform中httpclient應用附上:

這個是不帶引數的post請求,解析的話要引用newtonsoft.json.dll,可以直接把json資料轉成需要的實體類型別,然後就不必說了。

帶引數的應用:

C 中 HttpClient 的簡單使用

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

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

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

IDEA中的HTTP Client使用教程

idea restful webservices是乙個類似jmeter,postman的工具。可以使用純文字編輯。官網介紹位址 該工具是idea的乙個元件,在tools http client下 當然goland也是相同 低版本是test restful webservice,新版本的idea已經提...