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