C#摆脱WebClient中的Connection头

Unk*_*own 14 c# webclient

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

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

Connection : Keep-Alive
Run Code Online (Sandbox Code Playgroud)

有什么办法可以删除吗?

小智 15

今天早上我遇到了同样的问题.在飞碟双向的提示之后,就可以通过传递来实现HttpWebRequestWebClient通过继承它:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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


Jon*_*eet 5

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

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

  • 需要注意的一件事是,这样做不会“删除”连接标头,尽管它确实将其从“连接:保持活动”更改为“连接:关闭”。 (5认同)