为了账号安全,请及时绑定邮箱和手机立即绑定

Python怎么执行curl -T命令?

Python怎么执行curl -T命令?

阿晨1998 2019-02-18 15:42:36
curl -v 'https://developer.api.autodesk.com/oss/v2/buckets/mybucket/objects/example.txt' -X 'PUT' -H 'Authorization: Bearer AlmsGlZlqz1JkkzEruUdINMKA6IF' -H 'Content-Type: text/plain; charset=UTF-8' -T 'example.txt' 这是froge平台上提供的一个curl传文件的命令,用Python怎么解决呢https://forge.autodesk.com/en...:bucketKey-objects-:objectName-PUT/#body-structure。 我用urllib2实现的代码,不知道怎么传。 f = codecs.open(file_name, 'rb') filebody = f.read() PostUrl = ' https://developer.api.autodesk.com/oss/v2/buckets/'+bucketKey+'/objects/'+fileinfo.name bodys = {} bodys[''] = filebody postData = bodys # postData = {"file": filebody} headers = {'Authorization':'Bearer '+token,'Content-Length':fileinfo._size} request = urllib2.Request(PostUrl,postData) request.add_header('Authorization','Bearer '+token) request.add_header('Content-Length',fileinfo._size) request.get_method = lambda:'PUT' ctx = ssl.create_default_context() ctx.check_hostname = False ctx.verify_mode = ssl.CERT_NONE response = urllib2.urlopen(request,context=ctx) result = response.read() result = eval(result) print '------', result response_data["results"] = result 报错: Traceback (most recent call last): File "D:\ZZKJPRO\WuhanPro\src\modalManager\views.py", line 707, in autodesk_up loadfile response = urllib2.urlopen(request,context=ctx) File "C:\Python27\lib\urllib2.py", line 154, in urlopen return opener.open(url, data, timeout) File "C:\Python27\lib\urllib2.py", line 429, in open response = self._open(req, data) File "C:\Python27\lib\urllib2.py", line 447, in _open '_open', req) File "C:\Python27\lib\urllib2.py", line 407, in _call_chain result = func(*args) File "C:\Python27\lib\urllib2.py", line 1241, in https_open context=self._context) File "C:\Python27\lib\urllib2.py", line 1195, in do_open h.request(req.get_method(), req.get_selector(), req.data, headers) File "C:\Python27\lib\httplib.py", line 1042, in request self._send_request(method, url, body, headers) File "C:\Python27\lib\httplib.py", line 1082, in _send_request self.endheaders(body) File "C:\Python27\lib\httplib.py", line 1038, in endheaders self._send_output(message_body) File "C:\Python27\lib\httplib.py", line 886, in _send_output self.send(message_body) File "C:\Python27\lib\httplib.py", line 858, in send self.sock.sendall(data) File "C:\Python27\lib\ssl.py", line 753, in sendall v = self.send(data[count:]) TypeError: unhashable type
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

postData有问题, 直接令postData=f就好

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 934 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信