.net core HttpClient。忽略AddHttpClient配置的超时
当使用推荐的.net core HttpClient。忽略AddHttpClient配置的超时,.net-core,httpclientfactory,.net Core,Httpclientfactory,当使用推荐的AddHttpClient扩展来配置IHTTpClient工厂并包括一些默认的HttpClient设置时,在随后创建的HttpClient实例中看不到我为Timeout属性设置的值 演示使用Azure函数,它类似于ASP.NET内核 public class Startup : FunctionsStartup { public static readonly int PushTimeoutMs = 3000; public override void Config
AddHttpClient
扩展来配置IHTTpClient工厂
并包括一些默认的HttpClient
设置时,在随后创建的HttpClient
实例中看不到我为Timeout
属性设置的值
演示使用Azure函数,它类似于ASP.NET内核
public class Startup : FunctionsStartup
{
public static readonly int PushTimeoutMs = 3000;
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddHttpClient("PushNotification", client =>
{
client.Timeout = TimeSpan.FromMilliseconds(PushTimeoutMs);
});
}
}
创建客户端
public class TestFunctionTwo
{
public TestFunctionTwo(IHttpClientFactory httpClientFactory)
{
this.HttpClientFactory = httpClientFactory;
}
//
public IHttpClientFactory HttpClientFactory { get; }
//
[FunctionName("TestFunctionTwo")]
public async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
await Task.Delay(100);
return new OkObjectResult($"OK - Timeout: {this.HttpClientFactory.CreateClient().Timeout.TotalMilliseconds}");
}
}
这是因为您需要创建一个与您配置的同名的
HttpClient
,即“PushNotification”
OK - Timeout: 100000
return new OkObjectResult($"OK - Timeout: {this.HttpClientFactory.CreateClient("PushNotification").Timeout.TotalMilliseconds}");