这是我在python中需要的帖子请求的目标:
我有XML文件,网址和身份验证令牌。根据xml文件,我从服务器返回xml响应。
req = requests.post(url='http://abc123.com/index.php/plan/', \
headers={'auth-token': 'abCdeFgh'}, \
data={'data': open('sample_plan.xml', 'rb')})
发布请求状态代码为200,但xml响应中存在错误,例如“<error>invalid XML for request</error>
”。据说我的帖子请求中的xml文件填入了错误的参数。
但在另一个工具 - Postman - https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en?它的工作原理和正确的xml响应成功。我在Postman的所作所为:
: 密钥:身份验证令牌值:abCdeFgh
: 表格数据选项选择.. 密钥:数据值:选择了sample_plan.xml文件..
发布请求的参数目标(所有参数都是必需的): 1.标题 - Authentication-Token 2. in body - 名称为/ contentID = data
的XML文件
我应该将post请求的文件放入哪个参数?我已经尝试了几乎所有东西 - 基于python请求文档......
感谢您的帮助!
答案 0 :(得分:4)
经过几个小时的尝试,我得到了它!
正确的参数是文件,必须有'data'键,其值为3个参数的元组。否则它无法正常运作......
从请求文档中我使用 files 参数进行多部分编码上传http://docs.python-requests.org/en/master/api/ 使用密钥'数据',我强烈要求+ 3元组的值('filename',fileobj,'content_type')
因此我的问题的答案是(也使用'with'关键字,因此文件在套件完成后正确关闭)
vim