作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在测试一些发送一些 POST 请求的应用程序,想要在请求中缺少某些 header 时测试应用程序的行为,以验证它是否生成了正确的错误代码。
为此,我的代码如下。
header = {'Content-type': 'application/json'}
data = "hello world"
request = urllib2.Request(url, data, header)
f = urllib2.urlopen(request)
response = f.read()
问题是 urllib2 在发送 POST 请求时添加了它自己的 header ,如 Content-Length、Accept-Encoding,但我不希望 urllib2 添加比我在上面的 header 字典中指定的 header 更多的 header ,是有一种方法可以做到这一点,我尝试将我不想要的其他 header 设置为无,但它们仍然将这些空值作为我不想要的请求的一部分。
最佳答案
header 采用字典类型,下面的示例使用 chrome 用户代理。对于所有标准和一些非搁浅的标题字段,请查看 here .您还需要使用 urllib 而不是 urllib2 对数据进行编码。这在 python 文档中都提到了 here
import urllib
import urllib2
url = 'http://www.someserver.com/cgi-bin/register.cgi'
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1'
values = {'name' : 'Michael Foord',
'location' : 'Northampton',
'language' : 'Python' }
headers = { 'User-Agent' : user_agent }
data = urllib.urlencode(values)
req = urllib2.Request(url, data, headers)
response = urllib2.urlopen(req)
the_page = response.read()
关于Python urllib2 : How to eliminate urllib2 add it's own headers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12324072/
我是一名优秀的程序员,十分优秀!