|
|
|
@ -8,17 +8,42 @@ namespace HttpClientStudy.UnitTest.HttpClients
|
|
|
|
|
{
|
|
|
|
|
public class PipelineClientTest
|
|
|
|
|
{
|
|
|
|
|
public PipelineClientTest() { }
|
|
|
|
|
private readonly ITestOutputHelper _logger;
|
|
|
|
|
|
|
|
|
|
public PipelineClientTest(ITestOutputHelper outputHelper)
|
|
|
|
|
{
|
|
|
|
|
_logger = outputHelper;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 手动处理
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task Test()
|
|
|
|
|
public async Task Delegating_Test()
|
|
|
|
|
{
|
|
|
|
|
HttpClient client = new PipelineHttpClient().CreateHttpClient();
|
|
|
|
|
//构建管道
|
|
|
|
|
var handler = new HandlerA()
|
|
|
|
|
{
|
|
|
|
|
//相当于下一个中间件(管道)
|
|
|
|
|
InnerHandler = new HandlerB()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var r = await client.GetAsync("https://www.baidu.com");
|
|
|
|
|
r.EnsureSuccessStatusCode();
|
|
|
|
|
//构造中传入管道对象
|
|
|
|
|
HttpClient httpClient = new HttpClient(handler);
|
|
|
|
|
|
|
|
|
|
var sd = await httpClient.GetAsync(TestConfig.WebApiBaseUrl + "/api/account/ping");
|
|
|
|
|
var contentText = await sd.Content.ReadAsStringAsync();
|
|
|
|
|
|
|
|
|
|
_logger.WriteLine(contentText);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task CreateHttpClient_Test()
|
|
|
|
|
{
|
|
|
|
|
HttpClient client = new PipelineHttpClient().CreateHttpClient();
|
|
|
|
|
|
|
|
|
|
var r = await client.GetAsync(TestConfig.WebApiBaseUrl + "/api/account/ping");
|
|
|
|
|
r.EnsureSuccessStatusCode();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|