使用urllib2等效实现curl请求

时间:2015-06-22 16:54:40

标签: python curl urllib2

我有一个curl命令:

curl -H 'XXX:1' -b headerinfo https:.....com/getinfo

但是,我想用Python做同样的事情。 我尝试了以下方法:

with open('headerinfo', 'r') as headerfile:
    newData = headerfile.read()

req = urllib2.Request("https:....com/getinfo ", newData)
req.add_header('XXX', '1')
res2 = urllib2.urlopen(req)

但是,上面的代码不起作用。是否有我遗漏的东西阻止我的代码工作?

1 个答案:

答案 0 :(得分:0)

-b选项用于将cookie发送到Web服务器。如果-b的值为name=value,则会将其作为Cookie发送,否则该值将用作Cookie数据的文件名。

要发送Cookie,您必须创建一个开场白。

import cookielib, urllib2
cj = cookielib.MozillaCookieJar()
cj.load('headerinfo')
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders.append(('XXX','1'))
response = opener.open("http://example.com/")