我有如下的实现,默认的超时是100秒。
我想知道我怎样才能改变默认超时?
HTTP服务.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()))
{
}
}
}
4条答案
按热度按时间thtygnil1#
HttpClient
的默认超时为100秒。HttpClient超时
您可以根据
HttpClient
进行调整,并在HttpService
中设置自定义超时持续时间。httpClient.Timeout = 5000;
HttpClient请求超时
您也可以通过取消令牌CancellationTokenSource定义超时
一些注意事项:
1.在
HttpClient
内部进行更改将影响所有请求。如果您希望对每个请求进行更改,则需要将所需的超时持续时间作为参数传递。1.如果
CancellationTokenSource
的超时值小于HttpClient
设置的Timeout
,并且HttpClient
的超时值不是无限的,则传递CancellationTokenSource
的示例将有效。否则,HttpClient
将超时。mspsb9vt2#
client.Timeout = 5*1000;
不起作用,因为client.Timeout
需要以下类型的内容:System.TimeSpan
我使用以下命令更改了超时值:
也可以使用其他方法:
仅供参考:
Timeout
属性的默认值为100秒icnyk63a3#
由于我们没有看到任何任务创建超时,我不能帮助。
但如果您在应用程序的引擎盖下使用System.Net.Http,MSDN会说:
默认值为100,000毫秒(100秒)。
然后可以更改HttpClient.Timeout属性的值
hm2xizp94#
如果你的httpservice类有一个依赖性IHttpClient(它应该这样而不是更新一个httpclient),那么你可以在配置服务时通过在你的客户端上设置这个属性来改变默认值。
例如