【问题标题】:Where do the request headers for initial GET HTTP / 1.1 requests originate?初始 GET HTTP / 1.1 请求的请求标头来自哪里?
【发布时间】:2013-02-25 12:08:53
【问题描述】:

编辑:我也不相信 HttpListener 会做任何事情

  1. 所以响应标头!= 下一篇文章的请求标头。
  2. 为什么浏览器以正确的请求标头开头,但来自我的客户端的简单 GET HTTP / 1.1 看起来不一样,即使每个域的原始请求标头多次更改???????
  3. 这也没有正确使用cookies。这是为什么呢?

我该如何做才能赋予我这种浏览器的魔力?

*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 字符数据?

【问题讨论】:

  • 嗅探/与 Fiddler 比较
  • 直到有人知道为止。
  • 伙计,我厌倦了这个“饼干罐”的笑话。我希望人们能克服它并使用正确的变量名。

标签: c# http-headers httpwebrequest httplistener


【解决方案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");
}   

【讨论】:

  • 你倒退了,我不想输入,我想接收......你从来没有在浏览器中输入它们。
  • 你的意思是响应头?
  • 总是意味着请求标头..将您的标头与 chrome/fiddler 请求和我发布的 sn-p/fiddler 请求进行比较。将缺少一些泛型/基础设施。
  • 对不起,我不明白你在说什么。您在哪里发布 Fiddler 请求?在您的问题中,我可以看到一些使用 HttpWebRequest 类的代码。
  • 请比较 Fiddler 数据包。你会看到不同之处。这不仅仅是饼干。 Fiddler 是一个网络分析器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
相关资源
最近更新 更多