2012-02-21 96 views
2

我在使用请求模块发送放置时遇到问题。我已经能够成功完成并使用Chrome的Advanced Rest Client,我已验证我的有效内容是否正确。但是,我收到一个通用错误,说我发送了一个错误的请求。我是新来的Web服务调用,我不知道我在做什么是完全错误的,但是这是我试图:Python请求模块放置问题

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 - 错误的请求”

回答

2

挖掘更多的进入Quick Start Guide后,我发现这个信息的TID位:

还有,你要发送未形成编码数据多次。如果您传入字符串而不是字典,则会直接发布该数据。

我最初做这个尝试,但显然我有一个错字,因为我得到指示的错误,我需要在一个字典来传递。

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