7

ブラウザから送信するのと同じ情報をアプリケーションから送信しようとしています。Fiddler によってキャプチャされたデータの一部を次に示します。

POST http://something/ HTTP/1.1
Host: something.com
Connection: 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();
4

1 に答える 1

15

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-

于 2013-08-26T19:16:02.500 に答える