![](/img/trans.png)
[英]How to set “Connection: keep-alive” header in lower case through HttpClient?
[英]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.