2016-10-25 3 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 - 

Это код, который я имею в версии питона, мне не хватает данных, я думаю, что нужно использовать 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