代码之家  ›  专栏  ›  技术社区  ›  casillas

更改默认超时

  •  24
  • casillas  · 技术社区  · 7 年前

    我有以下实现。默认超时为100秒。

    我想知道如何更改默认超时?

    HttpService。反恐精英

    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 回复  |  直到 7 年前
        1
  •  46
  •   meandmycode    3 年前

    的默认超时 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);
    }
    

    几点注意事项

    1. 在内部进行更改 HttpClient 将影响所有请求。如果要根据请求进行设置,则需要通过所需的超时持续时间作为参数。
    2. 传递的实例 CancellationTokenSource 如果超时时间低于 Timeout 由设置 HttpClient HttpClient 的超时不是无限的。否则 HttpClient 将发生的超时。
        2
  •  15
  •   SU7    4 年前

    client.Timeout = 5*1000; 不起作用,因为 client.Timeout 需要以下类型的内容: System.TimeSpan

    我使用以下命令更改了超时值:

    client.Timeout = TimeSpan.FromSeconds(10); // Timeout value is 10 seconds
    

    您也可以使用其他方法:

    仅供参考:

    默认值 Timeout 属性为100秒

        3
  •  1
  •   Dolev    7 年前

    因为我们没有看到任何超时创建的任务,所以我无能为力。

    但如果您使用 System.Net.Http 在应用程序的保护下,MSDN会说:

    默认值为100000毫秒(100秒)。

    您可以更改 HttpClient.Timeout 所有物

    clent.Timeout = 5*1000;