1

編集:HttpListenerが何かを行うとは確信していません

  1. したがって、応答ヘッダー != 次の投稿の要求ヘッダー。
  2. ブラウザは正しいリクエスト ヘッダーで開始するのに、元のリクエスト ヘッダーがドメインごとに何度も変更されるにもかかわらず、クライアントからの単純な GET HTTP / 1.1 が同じように見えないのはなぜですか???????
  3. これもCookieを適切に使用しません。何故ですか?

このブラウザの魔法を私に与えるにはどうすればよいですか?

*WebClient には .RequestHeaders がありません。

*HttpWebRequest ヘッダーと Chrome/Fiddler スニッフィングの比較。

using System.Net;
    private void Form1_Load(object sender, EventArgs e)
    {
        CookieContainer cookieJar = new CookieContainer();
        cookieJar.GetCookies(new Uri("https://www.google.com"));
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.google.com");
        request.CookieContainer = cookieJar;
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();


        this.Text = request.Headers.Count.ToString();
            WebHeaderCollection header = request.Headers;
            for (int i = 0; i < header.Count; i++)
            {
                richTextBox1.AppendText(header.GetKey(i) + ": " + header[i] + "\n");
            }
    }

Fiddler/Chrome の組み合わせは 10 個の Request ヘッダーを返します。クライアントは 2 を返します。

また、ヘッダー「Accept-Encoding: gzip,deflate,sdch」が常に応答を奇妙な 2 文字のデータ フロップにするのはなぜですか?

4

1 に答える 1

0

何を達成しようとしているのかは明確ではありませんが、WebClient には、要求ヘッダーを希望どおりに表示するために使用できる Headers プロパティがあります。

using (var client = new WebClient())
{
    client.Headers[HttpRequestHeader.UserAgent] = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.152 Safari/537.22";
    client.Headers[HttpRequestHeader.AcceptLanguage] = "fr-FR,fr;q=0.8";
    ... you could set here whatever headers you want

    string result = client.DownloadString("http://www.google.com");
}   
于 2013-03-10T09:17:35.037 に答える