開發通用的通路webapi方法。
在common工具檔案夾下,建立一個類庫項目:Wsk.Core.WebHelper,并引用Package包項目,然後建立一個類HttpClientHelper,用于使用HttpClient方法進行通路webapi:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 建立一個接口IHttpClientHelper,用于HttpClientHelper繼承該接口。然後接口内新增一個傳回泛型類型的通用的POST通路webapi的方法:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 接着,在HttpClientHelper類裡面,進行對該方法的實作:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 說明:雖然使用了using,可以自動釋放資源;但是難免還是需要一點時間。在finally下面通過手動釋放資源,比自動釋放資源,資源釋放率會更快,在并發場景下,性能會更好一點點。當然,此處可以不适用using,因為手動釋放了,以上純屬個人喜好的風格寫法。
再來一個使用Basic加密進行通路的通用方法,寫法如上,具體請看代碼示例。先建立帶使用者名和密碼參數的接口:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 然後,在HttpClientHelper裡面進行對應的實作:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 以上為使用POST的方式進行,如果需要使用例如GET、PUT等,可以自行嘗試,寫法類似。
接口代碼:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) View Code
實作類代碼:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 現在再建立一個使用HttpWebRequest的通用通路webapi的方式。在WebHelper項目下面,建立 HttpWebRequestHelper類,以及IHttpWebRequestHelper接口:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 在接口裡面,建立一個通用的泛型類型的通路webapi的請求接口:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 然後,在HttpWebRequestHelper類裡面,進行有關的實作:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) HttpWebRequest沒有Dispose方法,是以此處沒有使用using寫法,最後需要手動使用Abort方法進行釋放資源。
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 接口實作代碼:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 現在開發兩個webapi進行測試。首先把該類庫項目,添加到啟動項目的項目引用裡面。然後,在啟動項目裡面的AutofacRegister裡面,添加對Wsk.Core.WebHelper類庫項目的所有接口進行依賴注入注冊:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 注冊部分代碼:
建立一個實體類,用來當作參數和傳回值的測試:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 接着,在控制器裡面寫幾個測試方法進行測試,測試内容如下:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 控制器部分代碼:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest)
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 運作,然後測試一下1和2接口是否可以使用,如果可以使用,拷貝對應的url位址,當作參數傳給主測試api裡面。
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 獲得到請求的url位址字首是:http://localhost:35678/WSK/,帶入參數進行驗證:
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest) 由此可見,兩個通用方法都可用。
備注:如果不适用泛型,也可以直接使用傳回String即可,不需要進行類型轉換。
如果覺得有用,歡迎點贊、評論、推薦或打賞~~
歡迎加入QQ群:
群号:1079830632
十二、.net core(.NET 6)添加通用的通路webapi的方法(包括HttpClient和HttpWebRequest)