5

Curl には--data-binary オプションでファイルをそのまま送信するオプションがあります。

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 Client Error: Unsupported Media Type を受け取り続けます。

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'))

file files パラメータを送信しようとすると、これも 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 パッケージに組み込むためです。

4

1 に答える 1

2

私が持っているはずだったヘッダーは

headers = {'X-Requested-With': 'Python requests', 'Content-type': 'text/xml'}
于 2013-07-16T15:23:50.843 に答える