邮递员发帖:
请求有效负载:
------WebKitFormBoundaryiPTu5XrX314NHpan
Content-Disposition: form-data; name="photo"; filename="example1.jpg"
Content-Type: image/jpeg
------WebKitFormBoundaryiPTu5XrX314NHpan--
标题:
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryiPTu5XrX314NHpan
需要从python应用程序发送图像,但每次都会收到400错误。
尝试:
req = urllib2.Request(photoURL, None, {'User-agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5'})
imgFile = cStringIO.StringIO(urllib2.urlopen(req).read())
datagen, headers = multipart_encode({"photo": Image.open(imgFile)})
request = urllib2.Request(postPhotoAPI, datagen, headers)
request.add_header("Authorization", authKey)
urllib2.urlopen(request).read()
结果:400
在requests.post和其他一些post函数(也适用于base64)中相同。
答案 0 :(得分:2)
当我想用python进行http调用时,我总是使用python requests库。
你需要做这样的事情:
files = {'photo': ('image.png', open('image.png', 'rb'), 'image/png')}
r = requests.post(photoURL, header={'User-agent' : 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5', 'Authorization': authKey} files=files)
print r.text
您可以阅读更多here。