将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

https://curl.trillworks.com/

试图获得一个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请求的主要内容,如果未能解决你的问题,请参考以下文章

将curl转换为python请求

如何将 instagram curl 发布请求转换为 javascript 请求?

将 CURL 转换为 $.Ajax

如何使用Curl将这个mailchimp API请求转换为使用PHP的Guzzle?

将 Paypal cURL 命令转换为 Axios 请求

Python 请求 API 调用不起作用