【发布时间】:2012-09-07 19:14:02
【问题描述】:
我正在测试一些我发送一些 POST 请求的应用程序,想要测试应用程序在请求中缺少某些标头时的行为,以验证它是否生成了正确的错误代码。
为此,我的代码如下。
header = {'Content-type': 'application/json'}
data = "hello world"
request = urllib2.Request(url, data, header)
f = urllib2.urlopen(request)
response = f.read()
问题是 urllib2 在发送 POST 请求时添加了自己的标头,例如 Content-Length、Accept-Encoding,但我不希望 urllib2 添加比我在上面的标头字典中指定的标头更多的标头,是有一种方法可以做到这一点,我尝试将其他我不想要的标头设置为无,但它们仍然使用那些空值作为我不想要的请求的一部分。
【问题讨论】:
-
尝试阅读
urllib2的源代码,看看在哪里添加了标题。要快速找到它,您可以使用grep -R Accept-Enconding *。 -
谢谢,我看到 AbstractHTTPHandler 扩展了 BaseHandler 类并实现了这些方法,如果它们不存在,则添加一些标头。