我有以下实现。默认超时为100秒。
我想知道如何才能更改默认超时?
HttpService.cs
public class HttpService : IHttpService
{
private static async Task GoRequestAsync<T>(string url, Dictionary<string, object> parameters, HttpMethod method,
Action<T> successAction, Action<Exception> errorAction = null, string body = "")
where T : class
{
using (var httpClient = new HttpClient(new HttpClientHandler()))
{
}
}
}
答案 0 :(得分:8)
client.Timeout = 5*1000;
不起作用,因为client.Timeout
需要某种类型的东西:System.TimeSpan
我使用以下方法更改了超时值:
client.Timeout = TimeSpan.FromSeconds(10); // Timeout value is 10 seconds
您还可以使用其他方法:
仅供参考:
Timeout
属性的默认值为100秒
答案 1 :(得分:4)
HttpClient
的默认超时为100 seconds。
HttpClient超时
您可以调整HttpClient
并在HttpService
内设置自定义超时时间。
httpClient.Timeout = 5000;
HttpClient请求超时
您也可以通过取消令牌CancellationTokenSource
定义超时using (var cts = new CancellationTokenSource(new TimeSpan(0, 0, 5))
{
await httpClient.GetAsync(url, cts.Token).ConfigureAwait(false);
}
注意,在HttpService
内进行更改会影响所有请求。如果您想根据请求进行此操作,则需要将所需的超时持续时间作为参数传递。
答案 2 :(得分:1)
由于我们没有看到任何因超时而创建的任务,我无能为力。
但是,如果你在应用程序的引擎盖下使用System.Net.Http而不是MSDN说:
默认值为100,000毫秒(100秒)。
您可以更改HttpClient.Timeout属性
的值clent.Timeout = 5*1000;