更改默认超时
Change default timeout
我有以下实现。并且默认超时为 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()))
{
}
}
}
由于我们没有看到任何超时创建的任务,我无能为力。
但是如果您在应用程序的底层使用 System.Net.Http 而不是 MSDN 所说:
The default value is 100,000 milliseconds (100 seconds).
您可以更改 HttpClient.Timeout 属性
的值
clent.Timeout = 5*1000;
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);
}
几点说明:
- 在
HttpClient
内进行更改将影响所有请求。如果你想根据请求进行,你需要将你想要的超时持续时间作为参数传递。
- 如果
CancellationTokenSource
的超时时间低于 HttpClient
设置的 Timeout
且 HttpClient
的超时时间不是无限的,则传递 CancellationTokenSource
的实例将起作用。否则,将发生 HttpClient
的超时。
client.Timeout = 5*1000;
不起作用,因为 client.Timeout
需要某种类型的东西:System.TimeSpan
我使用以下方法更改了超时值:
client.Timeout = TimeSpan.FromSeconds(10); // Timeout value is 10 seconds
您也可以使用其他方法:
仅供参考:
Timeout
属性的默认值为 100 秒
我有以下实现。并且默认超时为 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()))
{
}
}
}
由于我们没有看到任何超时创建的任务,我无能为力。
但是如果您在应用程序的底层使用 System.Net.Http 而不是 MSDN 所说:
The default value is 100,000 milliseconds (100 seconds).
您可以更改 HttpClient.Timeout 属性
的值clent.Timeout = 5*1000;
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);
}
几点说明:
- 在
HttpClient
内进行更改将影响所有请求。如果你想根据请求进行,你需要将你想要的超时持续时间作为参数传递。 - 如果
CancellationTokenSource
的超时时间低于HttpClient
设置的Timeout
且HttpClient
的超时时间不是无限的,则传递CancellationTokenSource
的实例将起作用。否则,将发生HttpClient
的超时。
client.Timeout = 5*1000;
不起作用,因为 client.Timeout
需要某种类型的东西:System.TimeSpan
我使用以下方法更改了超时值:
client.Timeout = TimeSpan.FromSeconds(10); // Timeout value is 10 seconds
您也可以使用其他方法:
仅供参考:
Timeout
属性的默认值为 100 秒