我需要通过POST在两个不同的网站上发送文件。所以,我使用了Requests库。
第二个响应中的照片始终为零。即使我改变了网站订单。
import requests
data = {'id': 1}
f = open('/tmp/photo7.jpg', 'rb')
image = {'image': ('photo7.jpg', f)}
# works fine
requests.post('http://site.com/', data=data, files=image)
# empty file
requests.post('http://othersite.com/', data=data, files=image)
可能是什么问题?
我认为文件对象在文件中的当前位置存在问题(可能,它在第一次响应后的文件末尾),但我不确定。
我无法正确搜索(0),追溯:http://pastebin.com/gnD2c1AR
感谢。
答案 0 :(得分:1)
使用seek
是正确的方法,但是您将此行中的{em>结果(将为0)而不是文件句柄传递给requests.post
:
files = {'image': ('photo7.jpg', f.seek(0))}
试试这个:
...
requests.post('http://site.com/', data=data, files=image)
f.seek(0)
requests.post('http://othersite.com/', data=data, files=image)