HttpClient和Connection:关闭HttpRequestHeaders

时间:2018-06-15 17:12:27

标签: c# .net http dotnet-httpclient

我正在为HttpClient创建一个静态包装器,该对象标识符是'Client'。代码如下。当我添加到options类时,我遇到了ConnectionClose,我正在考虑使其可配置,因为我希望其他开发人员能够根据需要进行配置。

但我读到的关于Connection的所有内容:标题中的close表示我希望它保持活着状态。这个值应该一直都是假的吗?或者是否有真实的接近值的有效用例?

    protected void Setup(ApiCallerOptions options)
    {
        Client = CreateHttpClient();
        Options = options;
        ServicePointManager.FindServicePoint(new Uri(options.BaseAddress))
            .ConnectionLeaseTimeout = options.ConnectionLeaseTimeout;
        Client.BaseAddress = new Uri(options.BaseAddress);
        Client.DefaultRequestHeaders.Accept.Clear();
        Client.DefaultRequestHeaders.Accept.Add(options.ContentType);
        Client.DefaultRequestHeaders.ConnectionClose = false;
    }

1 个答案:

答案 0 :(得分:1)

RFC https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

  

14.10连接

可以用于调试与保持活动的连接相关的问题,或者您根本不希望有任何持久连接。这些几乎是明确设置为真HttpClient实例时的用例。

要回答你的问题,它应该是假的,否则性能会降低。