2016-10-25 9 views
0

私はCurlコマンドをPython3に変換しようとしています。しかし、ヘッダー行を挿入して投稿要求を送信する際に問題があります。このコマンドは、ポスト要求を送信し、フォーマットされた応答を出力することになっています。Curl xml post to Python3

これは、コマンドの構文は次のとおりです。

curl -s 'https://api.sandbox.ebay.com/ws/api.dll'\ 
-H 'X-EBAY-API-SITEID: 0'\ 
-H 'X-EBAY-API-COMPATIBILITY-LEVEL: 861'\ 
--data '<?xml version="1.0" encoding="utf-8"?> 
<GetCategoriesRequest xmlns="urn:ebay:apis:eBLBaseComponents"> 
    <LevelLimit>1</LevelLimit> 
</GetCategoriesRequest>' | xmllint --format - 

これは私がPythonのバージョンを持っているコードで、私はデータが不足しています、私はrequest.postを使用する必要があると思うが、本当に悪い時間を過ごしていますコマンドを翻訳する。

import requests 
url = 'https://api.sandbox.ebay.com/ws/api.dll' 
headers = { 'X-EBAY-API-SITEID': '0', 'X-EBAY-API-COMPATIBILITY-LEVEL': '861'} 
r = requests.get(url, headers=headers) 

答えて

0

このコードを使用して投稿リクエストを送信することができます。

import requests 

headers = { 
    'X-EBAY-API-SITEID': '0', 
    'X-EBAY-API-COMPATIBILITY-LEVEL': '861' 
} 

data = '<?xml version="1.0" encoding="utf-8"?><GetCategoriesRequest xmlns="urn:ebay:apis:eBLBaseComponents"> <LevelLimit>1</LevelLimit></GetCategoriesRequest>' 
url = 'https://api.sandbox.ebay.com/ws/api.dll' 
r = requests.post(url, headers=headers, data=data) 
print r.content