簡體   English   中英

發送連接標頭設置為keep-alive

[英]Sending connection header set as keep-alive

我正在嘗試從我從瀏覽器發送的應用程序發送相同的信息。 以下是Fiddler捕獲的數據的一部分:

POST http://something/ HTTP/1.1
Host: something.com
Connection: keep-alive

我被這個連接屬性困住了。 如果我將屬性keep-alive設置為true,在Fiddler中我看到:

代理連接:保持活躍

如果我嘗試將連接屬性設置為Keep-alive,則會收到以下錯誤:

使用此屬性可能無法設置Keep-Alive和Close。

如何編寫代碼,以便在Fiddler中我可以看到:

連接:保持活力

我的完整代碼:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://myUrl ");
request.Method = "POST";
request.ProtocolVersion = HttpVersion.Version11;
request.Accept = "*/*";
WebHeaderCollection headers = new WebHeaderCollection();
headers.Add("Accept-Encoding", "myEncoding");
headers.Add("Accept-Language", "myLang");
request.Headers = headers;
request.ContentType = "myContentType";
request.Referer = "myReferer";
request.UserAgent = "myUserAgent";
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = "myData";
byte[] data = encoding.GetBytes(postData);
request.GetResponse().Close();

要讓您的應用程序發送Connection: Keep-Alive標頭,請使用HttpWebRequest對象上的KeepAlive屬性。

當客戶端知道它位於代理(如Fiddler)后面時,它可能會發送Proxy-Connection: Keep-Alive標頭而不是Connection: Keep-Alive標頭。 期望HTTP / 1.1代理(如Fiddler)將該頭從Proxy-Connection轉換為Connection然后再將其傳遞給上游服務器。

多年前引入了這種“代理重命名標頭”模式,試圖在不支持Keep-Alive HTTP / 1.0服務器中解決掛起問題; 我們的想法是,如果過時的代理沒有通過刪除Proxy-前綴重命名頭,服務器將忽略Proxy-Connection頭。

暫無
暫無

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

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