HTTP请求GET帮助?

时间:2011-12-07 15:13:11

标签: httpwebrequest

我将此请求发送到google.com,

  

GET /HTTP/1.1

     

主持人:www.google.com

     

连接:保持活力

     

缓存控制:max-age = 0

     

User-Agent:Mozilla / 5.0(Macintosh; Intel Mac OS X 10_6_8)AppleWebKit / 535.1(KHTML,like   Gecko)Chrome / 14.0.835.186 Safari / 535.1

     

接受:text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8

     

Accept-Encoding:gzip,deflate,sdch

     

接受语言:en-US,en; q = 0.8

     

Accept-Charqet:ISO-8859-1,utf-8; q = 0.7,*; q = 0.3

     

Cookie:NID = 51 = XHrnCh-WA2BjwFpfjavZ1dxy6JT98N0ojBEtkxBnP9uUEr3cLvm2ETGlr0q0JhWWcgth-z7Dm7J0NU-UpA77SiDtF2rh1DhzRRToW1jA0Ia7HmOzFepL9TdIW9MDacAK;了rememberMe = TRUE; PREF = ID = 5a917ae1d013ee33:U = 8c5a025c53669947:FF = 0:TM = 1317242244:LM = 1317291115:GM = 1:S = n1cOehpkL6SuVhsK

我从谷歌得到这个回复:

  

我们很抱歉......但您的计算机或网络可能正在发送自动查询。为了保护我们的用户,我们目前无法处理您的请求

为什么我会得到这个答案?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

你得到了这个答案,因为谷歌有一个自动反机器人服务,试图检测自动查询。

要解决这个问题,您需要确定查询的哪个部分正在触发反僵尸保护。在您的情况下,最好的办法可能只是与Google支持人员取得联系,或者尝试使用Google帮助论坛:http://www.google.com/support/forum

答案 1 :(得分:0)

您的请求行中的路径和版本之间似乎缺少空格。以下应该有效:

GET / HTTP/1.1

您的某个标题中也有一个拼写错误,Accept-Charqet而不是Accept-Charset

最后,您的标头之间会有额外的换行符,这会阻止HTTP服务器正确解释您的请求。您应该在每个标题后面加\r\n(回车,换行符),并在标题与请求正文之间分隔\r\n

更正后的请求如下:

GET / HTTP/1.1
Host: www.google.com
Connection: keep-alive
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: NID=51=XHrnCh-WA2BjwFpfjavZ1dxy6JT98N0ojBEtkxBnP9uUEr3cLvm2ETGlr0q0JhWWcgth-z7Dm7J0NU-UpA77SiDtF2rh1DhzRRToW1jA0Ia7HmOzFepL9TdIW9MDacAK; rememberme=true; PREF=ID=5a917ae1d013ee33:U=8c5a025c53669947:FF=0:TM=1317242244:LM=1317291115:GM=1:S=n1cOehpkL6SuVhsK

每行以\r\n结尾,并且末尾有一个以\r\n结尾的空行。