使用Python Mechanize进行HTTP POST时出现400错误请求

0 投票
3 回答
1334 浏览
提问于 2025-04-16 21:37

我在用Firefox进行HTTP POST请求时,检查了头部信息,使用的是Live HTTP headers。然后我尝试用mechanize来做这个请求,但却遇到了400错误,提示请求有问题。以下是我的代码:

MechBrowser = mechanize.Browser()

LoginUrl = "http://example.com"
LoginHeader = {"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://example.com"}
LoginData = "example=&hello=hi"

LoginReq = urllib2.Request(LoginUrl, LoginData, LoginHeader)
LoginResposne = MechBrowser.open(LoginReq)

我从LiveHTTPHeaders复制了变量,但还是收到了400错误。是不是有什么东西漏掉了?

3 个回答

0

根据我在网页服务器编程方面的一些经验,我可以告诉你,你只需要这样写:“http://example.com?example=&hello=hi”。(就是把你的网址和数据用一个“&”符号连接起来。)

0

400 是一个比较模糊的响应代码。造成这个问题的原因可能是 HostContent-Length 这些头信息不正确或者缺失。

0

其实,这个请求需要一些隐藏的信息,而这些信息没有被LiveHTTPHeaders捕捉到。所以我转而使用Fiddler来获取更详细的报告和分析,问题就解决了。

撰写回答