我使用WebClient()来使用C#。
我正在测试发送的标头,我注意到会自动添加以下标头。
Connection : Keep-Alive
有没有办法删除它?
答案 0 :(得分:15)
今天早上我遇到了同样的问题。根据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
答案 1 :(得分:4)
使用HttpWebRequest
代替WebClient
(稍微不太方便,但不是很方便)并将KeepAlive
属性设置为false
我还没有对此进行测试 - 它可能可能它只会更改Connection标头的值而不是删除它 - 但值得一试。 Connection
属性的文档至少建议它只添加Keep-Alive。