pythonresquests相当于curl的数据库?

2024-06-02 05:51:06 发布

您现在位置:Python中文网/ 问答频道 /正文

Curl可以像--data-binary option那样发送文件。

测试Qualys WAS API时,以下curl命令可以工作:

curl -u "username:password" -H "content-type: text/xml" -X "POST" --data-binary @- "https://qualysapi.qualys.com/qps/rest/3.0/search/was/webapp" < post.xml

post.xml文件:

<ServiceRequest><filters><Criteria operator="CONTAINS" field="name">PB - </Criteria></filters></ServiceRequest>

使用Python的requests模块,我不断收到HTTPError:415客户端错误:不支持的媒体类型。

import requests
url = 'https://qualysapi.qualys.com/qps/rest/3.0/search/was/webapp'
payload = '<ServiceRequest><filters><Criteria operator="CONTAINS" field="name">PB - </Criteria></filters></ServiceRequest>'
headers = {'X-Requested-With': 'Python requests', 'Content-type': 'application/json'}
r = requests.post(url, data=payload, headers=headers, auth=('username', 'password'))

尝试提交文件文件参数时,它也以415错误结束。

import requests
url = 'https://qualysapi.qualys.com/qps/rest/3.0/search/was/webapp'
payload = '<ServiceRequest><filters><Criteria operator="CONTAINS" field="name">PB - </Criteria></filters></ServiceRequest>'
headers = {'X-Requested-With': 'Python requests', 'Content-type': 'application/json'}
r = requests.post(url, data=payload, headers=headers, auth=('username', 'password'))

我设置这个的原因是将它合并到qualysapi Python package中。


Tags: 文件httpsurldatatypeusernamepasswordxml