初始GET HTTP / 1.1请求的请求头来自哪里?

本文关键字:请求 GET HTTP 初始 | 更新日期: 2023-09-27 18:03:14

edit:我也不相信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个请求头;客户端返回2.

也为什么头"Accept-Encoding: gzip,deflate,sdch"总是使响应一些奇怪的2字符的数据翻转?

初始GET HTTP / 1.1请求的请求头来自哪里?

不太清楚你想要实现什么,但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");
}