向api端点发出多部分/表单数据请求: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
尝试获取与python等效的curl进行验证。
不幸的是,尽管url可以正常工作,但url仍然无法解析我的curl语句。curlworks给我提供了格式错误的“文件”字典,却没有“数据”:
files = {
'file': ('myfile.xliff.;type', open('myfile.xliff;type', 'rb')),
'fileUri': (None, 'myfile.xliff'),
'fileType': (None, 'xliff'),
}
这是不正确的。 (因为卡住,我还是尝试了)
答案 0 :(得分:2)
尝试从将自动创建的标题中删除Content-Type