自定义配置HttpClient

完全封装 HttpClient

  1. 自定义 HttpClientFactory 请求类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public interface ISampleClient
{
Task<string> GetData();
}

public class SampleClient : ISampleClient
{
private readonly HttpClient _client;

public SampleClient(HttpClient httpClient)
{
httpClient.BaseAddress = new Uri("https://api.SampleClient.com/");
httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
httpClient.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactory-Sample");
_client = httpClient;
}

public async Task<string> GetData()
{
return await _client.GetStringAsync("/");
}
}
  1. 在Startup.cs中ConfigureService方法中注册SampleClient
1
services.AddHttpClient<ISampleClient, SampleClient>();
  1. 从容器获取实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class ValuesController : Controller
{
private readonly ISampleClient _sampleClient;;

public ValuesController(ISampleClient sampleClient)
{
_sampleClient = sampleClient;
}

[HttpGet]
public async Task<ActionResult> Get()
{
string result = await _sampleClient.GetData();
return Ok(result);
}
}

自定义配置HttpClient
https://pygyme.com/NET开发/自定义配置httpclient/
作者
PYGYME
发布于
2020年12月15日
许可协议