将curl转换为python请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将curl转换为python请求相关的知识,希望对你有一定的参考价值。
向api端点发出multipart / form-data请求:https://api-reference.smartling.com/#tag/Files%2Fpaths%2F~1files-api~1v2~1projects~1%7BprojectId%7D~1file%2Fpost
我正在使用这种语法的python请求模块:
headers = {
'Authorization': 'Bearer ...',
'Content-Type': 'multipart/form-data'
}
files = {'file': open('myfile.xliff', 'rb')}
data = {
'fileUri': '...',
'fileType': 'xliff',
...
}
requests.request('POST', endpoint, headers=headers, files=files, data=data)
我收到了来自端点的错误,遗憾的是它只是给了我一般的http 500错误。
如果我通过curl手动执行它,这确实可以正常工作:
curl -XPOST -H 'Authorization: Bearer ...' -F "file=@myfile.xliff' -F "fileUri=..." ...
所以我不相信它的端点不接受正确的请求。
这个curl语句和这个python调用看起来是否相同?一直坚持这个问题,我尝试了以下资源:
https://github.com/spulec/uncurl
试图获得一个curl到python等价的验证。
不幸的是,uncurl根本无法解析我的curl语句,尽管它正常工作并且curl.trillworks给了我一个格式错误的'文件'字典而没有'数据':
files = {
'file': ('myfile.xliff.;type', open('myfile.xliff;type', 'rb')),
'fileUri': (None, 'myfile.xliff'),
'fileType': (None, 'xliff'),
}
哪个不对。 (因为我被卡住了,我还是尝试过了)
答案
尝试从它将自动创建的标题中删除Content-Type
以上是关于将curl转换为python请求的主要内容,如果未能解决你的问题,请参考以下文章
如何将 instagram curl 发布请求转换为 javascript 请求?