更改默认超时

时间:2018-01-08 18:21:59

标签: c# xamarin mvvmcross

我有以下实现。默认超时为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()))
        {

        }
    }
 }

3 个答案:

答案 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;