Python请求模块Put问题



我在使用请求模块发送put时遇到问题。我已经能够成功地完成get,并使用Chrome的Advanced Rest Client验证了我的负载是正确的。然而,我收到一个一般性错误,说我发送了一个错误的请求。我是网络服务呼叫的新手,我不确定我所做的是否完全错误,但这就是我正在尝试的:

import requests
payload = {'payload': '<request>some request xml</request>'}
headers = {'content-type': 'application/xml'}
r = requests.put('https://the.url', data=payload, auth=HTTPBasicAuth('user', 'password'), headers=headers)

我知道100%的XML、URL和凭据都是正确的,那么为什么上面的不起作用呢?我唯一能想到的是,有效载荷的密钥需要是特定的,但我不确定这是否正确,也不确定如何确定它应该是什么…

响应是"HTTP状态400-错误请求"

在深入了解《快速入门指南》后,我发现了以下信息:

很多时候,您希望发送的数据不是表单编码的。如果传入一个字符串而不是dict,那么数据将直接发布。

我最初确实尝试过这个,但很明显我有一个打字错误,因为我得到的错误表明我需要通过一个dict。

无论如何,传入直接的XML而不是字典已经解决了这个问题。

最新更新