簡體   English   中英

C#擺脫WebClient中的Connection頭

[英]C# get rid of Connection header in WebClient

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

我正在測試發送的標頭,我注意到會自動添加以下標頭。

Connection : Keep-Alive

有什么辦法可以刪除嗎?

今天早上我遇到了同樣的問題。 繼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

使用HttpWebRequest而不是WebClient (它稍微不方便,但不是很多)並將KeepAlive屬性設置為false

我沒有對此進行測試 - 它可能只是更改Connection標頭的值而不是刪除它 - 但值得一試。 Connection屬性的文檔至少表明它只添加了Keep-Alive。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM