我发布到一个API,它似乎坚持接收XML数据作为名为(文件名?)的多部分/表单数据xml。它可以在postman中工作,但我无法使用Python的请求使其工作。这是我的Python代码(基于https://stackoverflow.com/a/24443309/1011724):
requests.post(callpro_url,
files={'xml':('data.xml',result)},
verify=False).text
其中result
是一个包含XML的字符串。如果我尝试这个代码,我得到的答复是:
xml post field is empty
如果这是一个多部分的数据,那么就不要使用它。在
如果我从正在工作的邮递员帖子中生成代码,我会得到这样的结果(稍微修改):
^{pr2}$在Python中执行这段代码,它会给出正确的响应。在
注意,邮递员代码中的params=querystring
部分在我的代码中的URL中处理。在
我被邮递员代码里的有效载荷搞糊涂了。它在字符串中添加内容处理和名称等内容。我假设我可以把这些东西放在files
参数的元组中,但我不知道如何做。我试过files={'xml':('data.xml',result,'form-data')}
和{
另外,postman代码将头显式定义为
'content-type': "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW"
而requests documentation则说我永远不应该以这种方式显式定义头。但是邮递员代码有效,而我的代码不行。在
有什么建议吗?在
我不知道这是否值得回答,或者我是否应该删除这个问题,但需要的是将文件命名为
"xml"
而不是xml
。所以这是可行的:相关问题 更多 >
编程相关推荐