我需要通过POST在两个不同的网站发送一个文件。因此,我使用请求库。
第二个响应中的照片大小始终为零。即使我改变了网站的顺序。
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)可能的问题是什么?
我认为问题出在file对象在文件中的当前位置(可能是在第一次响应之后的文件末尾),但我不确定。
我无法正确设置seek(0),回溯:http://pastebin.com/gnD2c1AR
谢谢。
发布于 2013-04-13 06:20:19
使用seek是正确的方法,但是在下面的代码行中,您将seek的结果(将为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)https://stackoverflow.com/questions/15284220
复制相似问题