日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET6之MiniAPI(二十二):HttpClient

發布時間:2023/12/4 asp.net 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET6之MiniAPI(二十二):HttpClient 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明:本篇不是說明HttpClient怎么使用,而以分享在asp.net core mini api框架下,HttpClient的引入和使用方式。

我們在業務開發中,免不了調用三方的服務,這時就會用到HttpClient,在早期的asp.net core框架中,一般是通過new HttpClient來實現對三方的請求,現在,可以通過HttPClientFactory來實現,這樣的好處是可以池化連接,節省資源。

基礎使用方法很簡單:

var builder = WebApplication.CreateBuilder(args);builder.Services.AddHttpClient();var app = builder.Build();app.MapGet("/test", async (IHttpClientFactory clientFactory) =>{var client = clientFactory.CreateClient();var content = await client.GetStringAsync("https://www.google.com");});app.Run();

當項目中有多個三方服務請求,為了區分各個三方服務,可以采用命名方式

var builder = WebApplication.CreateBuilder(args);builder.Services.AddHttpClient("Google", httpClient => {httpClient.BaseAddress = new Uri("https://www.google.com/"); }); builder.Services.AddHttpClient("BaiDu", httpClient => {httpClient.BaseAddress = new Uri("https://www.baidu.com/"); }); var app = builder.Build();app.MapGet("/testgoogle", async (IHttpClientFactory clientFactory) =>{var?googleClient?=?clientFactory.CreateClient("Google");return?await?googleCclient.GetStringAsync("search?q=桂素偉");}); app.MapGet("/testbaidu", async (IHttpClientFactory clientFactory) => {var?baiduClient?=?clientFactory.CreateClient("BaiDu");return?await?lient?.GetStringAsync("s?wd=桂素偉"); }); app.Run();

還可以項目中每個服務的請求各自封裝,各用各的HttpClient:

var builder = WebApplication.CreateBuilder(args);builder.Services.AddHttpClient<IGoogleService, GoogleService>(); builder.Services.AddHttpClient<IBaiDuService, BaiDuService>(httpClient => {httpClient.BaseAddress = new Uri("https://www.baidu.com/"); });var app = builder.Build();app.MapGet("/testgoogle", async (IGoogleService google) =>{return await google.GetContentAsync();}); app.MapGet("/testbaidu", async (IBaiDuService baidu) => {return await baidu.GetContentAsync(); }); app.Run();interface IGoogleService {Task<string> GetContentAsync(); } class GoogleService : IGoogleService {private readonly HttpClient _httpClient;public GoogleService(HttpClient httpClient){_httpClient = httpClient;_httpClient.BaseAddress = new Uri("https://www.google.com/");}public async Task<string> GetContentAsync(){return await _httpClient.GetStringAsync("search?q=桂素偉");} } interface IBaiDuService {Task<string> GetContentAsync(); } class BaiDuService : IBaiDuService {private readonly HttpClient _httpClient;public BaiDuService(HttpClient httpClient){_httpClient = httpClient;}public async Task<string> GetContentAsync(){return await _httpClient.GetStringAsync("s?wd=桂素偉");} }

總結

以上是生活随笔為你收集整理的.NET6之MiniAPI(二十二):HttpClient的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。