.net HttpClient簡單使用
創建一個名為HttpClientTest的Web API項目
新建Clients文件夾,用于存放自定義的HttpClient
在Clients下新建一個MyHttpClient類
代碼為:
namespace HttpClientTest.Clients { public class MyHttpClient { private readonly HttpClient _client; public MyHttpClient(HttpClient client) { _client = client; } public async Task<string> ShowAsync() { return await _client.GetStringAsync("https://www.baidu.com"); } } }
將自定義的MyHttpClient服務注冊進容器中
services.AddHttpClient<MyHttpClient>();
新建一個TestController來對我們的MyHttpClient做一個測試
using HttpClientTest.Clients; using Microsoft.AspNetCore.Mvc; namespace HttpClientTest.Controllers { [ApiController] [Route("[controller]/[action]")] public class TestController : ControllerBase { private readonly MyHttpClient _myHttpClient; public TestController(MyHttpClient myHttpClient) { _myHttpClient = myHttpClient; } [HttpGet] public async Task<object> GetAsync() { return await _myHttpClient.ShowAsync(); } } }
訪問GetAsync接口,發現成功返回了百度首頁的html內容
很多時候,我們希望通過相對路徑的方式來對遠程服務進行訪問
可以把MyHttpClient改為:
namespace HttpClientTest.Clients { public class MyHttpClient { private readonly HttpClient _client; public MyHttpClient(HttpClient client) { _client = client; } public async Task<string> ShowAsync() { //return await _client.GetStringAsync("https://www.baidu.com"); return await _client.GetStringAsync("/"); } } }
在注冊服務時就要配置基地址
services.AddHttpClient<MyHttpClient>(client => { client.BaseAddress = new Uri("https://www.baidu.com"); });
到此這篇關于.net HttpClient簡單使用的文章就介紹到這了,更多相關.net HttpClient使用內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://blog.csdn.net/m0_47659279/article/details/121509859