13

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

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

Connection : Keep-Alive

有什么办法可以去掉这个吗?

4

2 回答 2

16

今天早上我遇到了同样的问题。按照 Jon 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

于 2010-03-02T08:48:35.407 回答
4

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

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

于 2009-05-22T05:30:39.590 回答