2013-03-10 3 views
1

редактировать: Я также не уверен, HttpListener ничегоОткуда берутся заголовки запросов для первоначальных запросов GET HTTP/1.1?

  1. Так ответ заголовки = заголовки запросов для следующего поста!.
  2. Почему браузер начинается с правильных заголовков запросов, но простой GET HTTP/1.1 от моего клиента не выглядит одинаковым, даже если исходные заголовки запросов меняются на домен много раз ???????
  3. Это также не использует файлы cookie. Почему это?

Как мне работать, чтобы дать мне эту магию браузера?

* WebClient не имеет .RequestHeaders.

* Сравнение HttpWebRequest заголовков с Chrome/Fiddler sniffing.

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 combo возвращает 10 заголовков заявок; Клиент возвращает 2.

Также почему заголовок «Accept-Encoding: gzip, deflate, sdch» всегда делает ответ каким-то странным 2-символьным флопом данных?

+0

понюхал/По сравнению с Скрипач – ploxtic

+0

Пока кто-то знает что нибудь. – ploxtic

+0

Человек, я так устал от этой шутки «cookie jar». Я хочу, чтобы люди перевернули его и просто использовали правильное имя переменной. – usr

ответ

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"); 
} 
+0

Вы назад, я не хочу вводить, я хочу получать ... Вы никогда не вводите их в браузер. – ploxtic

+0

Вы имеете в виду заголовки ответа? –

+0

Всегда имел в виду заголовки запросов .. сравните ваши данные с запросом на хром/скрипач и запрошенный фрагмент i/fiddler. Будет отсутствовать какая-то дженерика/инфраструктура. – ploxtic

Смежные вопросы