繁体   English   中英

C#摆脱WebClient中的Connection头

[英]C# get rid of Connection header in WebClient

我正在使用WebClient()使用C#。

我正在测试发送的标头,我注意到会自动添加以下标头。

Connection : Keep-Alive

有什么办法可以删除吗?

今天早上我遇到了同样的问题。 继Skeet的提示之后,可以通过继承它将HttpWebRequest传递给WebClient来实现:

class MyWebClient : WebClient
{
    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        if (request is HttpWebRequest)
        {
            (request as HttpWebRequest).KeepAlive = false;
        }
        return request;
    }
}

现在发送的标题将包含Connection : close

使用HttpWebRequest而不是WebClient (它稍微不方便,但不是很多)并将KeepAlive属性设置为false

我没有对此进行测试 - 它可能只是更改Connection标头的值而不是删除它 - 但值得一试。 Connection属性的文档至少表明它只添加了Keep-Alive。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM