次のような HTTP リクエスト ヘッダーを設定しています。
this.Url = new Uri(u);
HttpWebRequest http = (HttpWebRequest)WebRequest.Create(Url);
WebResponse response = http.GetResponse();
//headers
http.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0\r\n";
http.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
http.Headers.Add("Accept-Encoding", "gzip,deflate,sdch'r'n");
http.Headers.Add("Accept-Language", "en-US,en;q=0.9\r\n");
http.Headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3\r\n");
私は次のようにそれらをキャプチャしています:
for (count = 0; count < http.Headers.Keys.Count; count++)
{
headerKey = http.Headers.Keys[count];
headerValue = http.Headers[headerKey];
if (headerValue != null)
{
if (headerKey == null)
{
requestbuffer.Append(headerValue);
requestbuffer.Append(Newline);
}
else
{
requestbuffer.Append(headerKey + ": " + headerValue);
requestbuffer.Append(Newline);
}
}
}
テスト ツールを実行すると、すべて問題ないように見えます。
- ホスト: domain.com
- 接続: キープアライブ
- ユーザーエージェント: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0)Gecko/20100101 Firefox/17.0
- 受け入れる: text/html,application/xhtml+xml,application/xml;q=0.9, / ;q=0.8
- Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.9
- Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
ただし、Wireshark と Fiddler では、次のヘッダーのみが送信されます。
- GET / HTTP/1.1
- ホスト: domain.com
それはなぜでしょうか?