在Python 2.7中支持http PUT的故障查找库

我需要从python执行http PUT操作哪些库已被证明支持此操作?更具体地说,我需要对密钥对执行PUT,而不是文件上传.

我一直在尝试使用restful_lib.py,但是从正在测试的API中得到无效的结果. (我知道结果是无效的,因为我可以从命令行使用curl触发相同的请求,并且它可以工作.)

参加Pycon 2011之后,我对pycurl可能是我的解决方案印象深刻,因此我一直在尝试实现这一点.我在这里有两个问题.首先,pycurl将“ PUT”重命名为“ UPLOAD”,这似乎意味着它专注于文件上传而不是密钥对.其次,当我尝试使用它时,似乎从未从.perform()步骤中得到回报.

这是我当前的代码:

import pycurl
import urllib
url='https://xxxxxx.com/xxx-rest'
UAM=pycurl.Curl()

def on_receive(data):
  print data

arglist= [\
    ('username', 'testEmailAdd@test.com'),\
    ('email', 'testEmailAdd@test.com'),\
    ('username','testUserName'),\
    ('givenName','testFirstName'),\
    ('surname','testLastName')]
encodedarg=urllib.urlencode(arglist)
path2= url+"/user/"+"99b47002-56e5-4fe2-9802-9a760c9fb966"
UAM.setopt(pycurl.URL, path2)
UAM.setopt(pycurl.POSTFIELDS, encodedarg)
UAM.setopt(pycurl.SSL_VERIFYPEER, 0)
UAM.setopt(pycurl.UPLOAD, 1) #Set to "PUT"
UAM.setopt(pycurl.CONNECTTIMEOUT, 1) 
UAM.setopt(pycurl.TIMEOUT, 2) 
UAM.setopt(pycurl.WRITEFUNCTION, on_receive)
print "about to perform"
print UAM.perform()

解决方法:

httplib应该管理.

http://docs.python.org/library/httplib.html

此页上有一个示例http://effbot.org/librarybook/httplib.htm

上一篇:使用Python获取DNS解析时间和响应时间


下一篇:python – 在mac上安装pycurl