python urllib2发布请求

时间:2013-05-23 11:19:11

标签: python urllib2 put

是否可以将这段代码改编为生成请求:

#!/usr/bin/python

import urllib2, base64, urllib

dir="https://domain.com/api/v1/"
use="one@two.com"
pas="123456"

base64string = base64.encodestring('%s:%s' % (use, pas)).replace('\n', '')

request = urllib2.Request(dir, headers={"Authorization" : "Basic %s" % base64string})
response = urllib2.urlopen(request).read()

print response

我尝试使用其他代码,但我认为它会执行get请求,不是吗?

#!/usr/bin/python

import urllib2, base64, urllib

dir="https://domain.com/api/v1/"
use="one@two.com"
pas="123456"

values = {
      'list' :["201.22.44.12","8.7.6.0/24"]
    }

data = urllib.urlencode(values)

base64string = base64.encodestring('%s:%s' % (use, pas)).replace('\n', '')

request = urllib2.Request(dir, data, headers={"Authorization" : "Basic %s" % base64string})
response = urllib2.urlopen(request).read()

1 个答案:

答案 0 :(得分:7)

我不确定这对你有用,但请查看这段代码

您可以使用urllib对dict进行编码,如下所示:

import urllib
import urllib2

url = 'http://example.com/...'
values = { 'productslug': 'bar','qty': 'bar' }
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
result = response.read()
print result