使用wget并获得与使用浏览器不同的结果
我在Windows 8中使用wget for windows(gnuwin32 wget-1.11.4-1)并将其用于名为kayako的帮助台工具,告诉它从邮件队列。命令行看起来是这样的:使用wget并获得与使用浏览器不同的结果
wget.exe -O null --timeout 25 http://xxx.kayako.com/cron/index.php?/Parser/ParserMinute/POP3IMAP
我知道这需要大约20秒内使用,在上面的命令行中的URL浏览器时,接收来自服务器的响应在我的具体情况。但是,使用该命令时,它几乎立即返回。这是输出摘录:
正在连接到xxx.kayako.com [xxx.xxx.xxx.xxx]:80 ...已连接。 HTTP请求 发送,正在等待回应... 200 OK长度:未指定 [文/ HTML]
我想知道什么是两种情况之间的差异,我怎么能拿wget来表现在与计算机一样(我知道它并不是因为kayako不是从电子邮件队列中轮询)。
有许多潜在的变量,但是网络服务器最常见的区别之一是基于您所报告的用户代理字符串。默认情况下,wget会将其自身标识为wget。如果这是一个问题,您可以使用--user-agent=
选项更改用户代理字符串。
例如,您可以在64位Windows上识别出类似于--user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"
的Firefox。
谢谢,这是非常好的猜测!不幸的是,我仍然几乎立即从服务器收到“200”的响应(浏览器总是需要更长的时间),并且不起作用。 – DPM 2013-03-25 12:37:09
如果不是这样或--referer =“http:// some/site /”,那么我不知道还有什么要说的 – 2013-03-25 13:34:11
启动WireShark并查看HTTP标头的差异。 – Luke 2013-03-25 13:38:39
@Luke谢谢你的好主意,我会这样做,如果我能解决问题,请回复更新 – DPM 2013-03-25 13:43:19