Python から http PUT 操作を実行する必要があります。これをサポートすることが証明されているライブラリはどれですか? より具体的には、ファイルのアップロードではなく、キーペアで PUT を実行する必要があります。
restful_lib.py を使用しようとしていますが、テストしている API から無効な結果が得られます。(コマンド ラインから curl を使用して同じ要求を発行でき、それが機能するため、結果が無効であることはわかっています。)
Pycon 2011 に参加した後、私は pycurl が私の解決策になるかもしれないという印象を持ったので、それを実装しようとしてきました。ここで 2 つの問題があります。まず、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()