Какой HTTP-заголовок должен быть отправлен при вызове webrequest или webclient? - PullRequest
0 голосов
/ 14 сентября 2011

Я создаю веб-робота. Обычно инструменты http возвращают довольно мало информации, и некоторые из них доступны только для чтения (например, Connect: keep-alive). Как узнать, какие из них требуются?

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Charset: ISO-8859-9,utf-8;q=0.7,*;q=0.3
Accept-Encoding: gzip,deflate,sdch
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control: max-age=0
Content-Length: 269
Content-Type: application/x-www-form-urlencoded
Host: closure-compiler.appspot.com
Origin: null
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko)       Chrome/14.0.794.0 Safari/535.1

Обычно код выглядит следующим образом. Кто-то указал, что следующий код пропущен для установки Content-Type?

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://closure-compiler.appspot.com/compile");
req.Connection = "keep-alive";
req.Headers.Add("Cache-Control", "max-age=0");
req.Headers.Add("Origin","null");
req.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.794.0 Safari/535.1";
req.ContentType = "application/x-www-form-urlencoded";
req.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
req.Headers.Add("Accept-Encoding", "gzip,deflate,sdch");
req.Headers.Add("Accept-Language", "tr-TR,tr;q=0.8,en-US;q=0.6,en;q=0.4");
req.Headers.Add("Accept-Charset", " ISO-8859-9,utf-8;q=0.7,*;q=0.3");
req.Method = "POST";

Stream reqStr = req.GetRequestStream(); 

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

Согласно w3.org, самый простой запрос должен выглядеть примерно так:

GET <uri> CrLf

Это все.

0 голосов
/ 14 сентября 2011

Для общих запросов заголовки не требуются.Для определенных ресурсов могут потребоваться разные заголовки.Правильный способ - спросить владельца ресурса, какие заголовки нужны.Но если вы хотите обмануть какую-то игру / форум, вам придется самостоятельно определять заголовки и другие значения.

...