我的一个脚本在 XP 系统上完美运行,但确切的脚本在 2003 系统上挂起。我总是使用 Mechanize 来发送 http 请求,这是一个例子:
import socket, mechanize, urllib, urllib2
socket.setdefaulttimeout(60) #### No idea why it's not working
MechBrowser = mechanize.Browser()
Header = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 GTB7.1 (.NET CLR 3.5.30729)', 'Referer': 'http://www.porn-w.org/ucp.php?mode=login'}
Request = urllib2.Request("http://google.com", None, Header)
Response = MechBrowser.open(Request)
我不认为我的代码有什么问题,但是每次当涉及到特定 url 的某个 http POST 请求时,它都会卡在 2003 年的计算机上(仅在该 url 上)。这一切的原因可能是什么,我应该如何调试?
顺便说一下,直到几个小时前,脚本才运行正常。并且没有更改任何设置。
最佳答案
您可以使用 Fiddler或 Wire Shark看看在 HTTP 级别发生了什么。
还值得检查机器是否已被阻止向您尝试访问的机器发出请求。使用常规浏览器(使用您自己的 HTML 表单)和 Mechanize 使用的 HTTP 库,看看您是否可以手动构建请求。 Fiddler 也可以帮助您做到这一点。
关于python - 为什么http请求卡在我的python脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8279380/