Mil*_*tný 5 c# keep-alive fiddler
我正在尝试从我从浏览器发送的应用程序发送相同的信息.以下是Fiddler捕获的数据的一部分:
POST http://something/ HTTP/1.1
Host: something.com
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)
我遇到了这个连接属性.如果我将属性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();
Run Code Online (Sandbox Code Playgroud)
Eri*_*Law 13
要让应用程序发送Connection: Keep-Alive标头,请在对象上使用KeepAlive属性HttpWebRequest.
当客户端知道它位于代理(如Fiddler)后面时,它可能会发送Proxy-Connection: Keep-Alive标头而不是Connection: Keep-Alive标头.期望HTTP/1.1代理(如Fiddler)将该头转换Proxy-Connection为Connection将其传递给上游服务器之前.
这种"代理重命名标头"模式是多年前引入的,目的是尝试在不支持Keep-Alive正确的HTTP/1.0服务器中解决挂起问题; 我们的想法是,Proxy-Connection如果过时的代理没有通过删除Proxy-前缀重命名标头,服务器将忽略标头.