用curl 提交二进制数据可以,requests无效
curl代码
curl "http://example.com?id=0&token=token" --header 'Content-Type:video/mp4' --data-binary "@/video.mp4.part0"
用requests复现这个代码,则无效
import requestsheaders = {
'Content-Type': 'video/mp4',
}
params = (
('id', '0'),
('token', 'token'),
)
data = open('/video.mp4.part0', 'rb').read()
response = requests.post('http://example.com', headers=headers, params=params, data=data)
我还尝试过其它方法
- 在headers里增加application/x-www-form-urlencoded;application/json
- 将video.mp4.part0 构造成一个files字典 {"file":open('video.mp4.part0','rb')}
- 在requests里,将请求data,变成files等等
- 我还试过,将请求参数放到params里,并且urllib.parse.urlencode;然后放到url里 requests.post(url,headers=headers,data=data) #这里的url放的是带参数的
目前还是,CURL可以正常上传;但是requests方式不可以。
请问这是什么原因,用requests的话,要如何重构这个curl请求
回答:
我测试 requests.post('http://sxxx', data='字符串数组')
可以收到. 不知道你是怎么认为自己没收到的.
以上是 用curl 提交二进制数据可以,requests无效 的全部内容, 来源链接: utcz.com/p/937987.html