【问题标题】:Using wget and getting a different outcome than when using a browser使用 wget 并获得与使用浏览器时不同的结果
【发布时间】:2013-03-25 12:08:57
【问题描述】:

我在 Windows 8 中使用 wget for windows (gnuwin32 wget-1.11.4-1) 并将其用于名为 kayako 的帮助台工具,告诉它从电子邮件队列中进行轮询。命令行如下所示:

wget.exe -O null --timeout 25 http://xxx.kayako.com/cron/index.php?/Parser/ParserMinute/POP3IMAP

我知道在我的特定情况下,当使用带有上述命令行中的 url 的浏览器时,大约需要 20 秒才能收到来自服务器的响应。但是,当使用该命令时,它几乎立即返回。这是输出的摘录:

正在连接到 xxx.kayako.com[xxx.xxx.xxx.xxx]:80... 已连接。 HTTP 请求已发送,等待响应... 200 OK 长度:未指定 [文本/html]

我想知道这两种情况之间的区别是什么,以及如何让 wget 以与计算机相同的方式运行(我知道不是因为 kayako 没有从电子邮件队列中轮询)。

【问题讨论】:

  • 启动 WireShark,看看 HTTP 标头有什么不同。
  • @Luke 谢谢好主意,如果我能解决问题,我会这样做并回复更新

标签: windows http windows-8 httprequest wget


【解决方案1】:

有许多潜在的变量,但 Web 服务器最常见的区别之一是基于您报告的用户代理字符串。默认情况下,wget 会将自己真实地标识为 wget。如果这是一个问题,您可以使用--user-agent= 选项来更改用户代理字符串。

例如,您可以在 64 位 Windows 上将 Firefox 标识为 --user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"

【讨论】:

  • 谢谢,猜的真好!不幸的是,我仍然几乎立即从服务器收到“200”响应(在浏览器上总是需要更长的时间)并且它不起作用。
  • 如果不是那个或者 --referer="some/site" 那我不知道还能告诉你什么
猜你喜欢
  • 2021-12-19
  • 1970-01-01
  • 2019-09-22
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
相关资源
最近更新 更多