【问题标题】:HTTP Request GET Help?HTTP 请求 GET 帮助?
【发布时间】:2012-01-15 02:22:53
【问题描述】:

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

GET /HTTP/1.1

主机:www.google.com

连接:保持活动

缓存控制:max-age=0

用户代理:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like 壁虎)Chrome/14.0.835.186 Safari/535.1

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

接受编码:gzip、deflate、sdch

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

接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3

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

我从谷歌得到这个回复:

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

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

【问题讨论】:

  • 修复什么?你期望发生什么?

标签: httpwebrequest


【解决方案1】:

您得到这个答案是因为 Google 有一个自动反机器人服务,该服务会尝试检测自动查询。

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

【讨论】:

    【解决方案2】:

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

    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 结尾。

    【讨论】:

    • 谢谢。有没有我可以发送 http 请求并得到答案的应用程序?另一件事是你能给出 \r\n \r\n 事情的样本吗?提前致谢!
    • 请问为什么这也不起作用? GET /dip.php?uid=hushmand&pass=1234&req=1&pid=1 /HTTP/1.1 主机:hushmandsazan.com 连接:keep-alive 用户代理:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML , 像 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: fusion_visited=yes
    • 我扩展了答案以提供有关 \r\n 的更多信息。您可以使用“telnet”之类的实用程序将消息发送到 HTTP 服务器。您的发送请求与第一个有类似的问题,您将版本指定为“/HTTP/1.1”,但它应该是“HTTP/1.1”。多余的斜线可能会导致您的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多