2009-05-22 51 views
14

我正在使用C#使用WebClient()。C#擺脫WebClient中的連接標頭

我測試了什麼標題發送,我注意到,下面的標題是自動添加的。

Connection : Keep-Alive 

有什麼方法可以刪除它嗎?

回答

4

使用HttpWebRequest,而不是WebClient(這是不太方便,但不是非常多)和KeepAlive屬性設置爲false

我還沒有測試過 - 它是可能它只會改變Connection頭的值而不是刪除它 - 但值得一試。 Connection財產至少的文檔建議它只添加Keep-Alive。

+5

有一點要注意的是,這樣做不會*刪除*連接頭,儘管它確實將其從「Connection:Keep-Alive」更改爲「Connection:Close」。 – 2009-10-16 16:57:08

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; 
    } 
} 

現在發送標題將包括Connection : close