将curl转换为python请求

将curl转换为python请求,python,python-requests,Python,Python Requests,向api端点发出多部分/表单数据请求: 我使用的python请求模块的语法如下: headers = { 'Authorization': 'Bearer ...', 'Content-Type': 'multipart/form-data' } files = {'file': open('myfile.xliff', 'rb')} data = { 'fileUri': '...', 'fileType': 'xliff', ... } request

向api端点发出多部分/表单数据请求:

我使用的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调用看起来是等价的吗?在这个问题上,我已经尝试了以下资源:

尝试获取与python等效的curl进行验证

不幸的是,uncurl根本无法解析我的curl语句,尽管它工作正常,curl.trillworks给了我一个格式错误的“files”字典,并且没有“data”:

files = {
    'file': ('myfile.xliff.;type', open('myfile.xliff;type', 'rb')),
    'fileUri': (None, 'myfile.xliff'),
    'fileType': (None, 'xliff'),
}

这是不正确的。(我在卡住时尝试了它)

尝试从它将自动创建的标题中删除
内容类型

您不能指定
内容类型
。因为它不像你做的那么简单。阅读wow谢谢,我承认我推迟了尝试,因为我认为它仍然会在后端发送相同的标题,但这样做了,我手动传递的内容是正确的,谢谢