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

C#去掉WebClient中的连接头

  •  14
  • Unknown  · 技术社区  · 17 年前

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

    我正在测试发送的是什么标题,我注意到下面的标题是自动添加的。

    Connection : Keep-Alive
    

    有没有办法去掉这个?

    2 回复  |  直到 17 年前
        1
  •  16
  •   Uwe Keim    4 年前

    今天早上我遇到了同样的问题。按照乔恩·斯基特的暗示,可以通过传球来实现 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

        2
  •  4
  •   Jon Skeet    17 年前

    使用 HttpWebRequest 而不是 WebClient (这是 轻微地 不太方便,但不是很方便)并设置 KeepAlive 财产 false .

    我还没有测试过这个-它是 可能的 它只会更改连接头的值,而不是删除它——但值得一试。医生的文件 Connection 至少是财产 建议 这只会增加你的活力。