2016-12-22 2 views
0

У меня есть этот локон команду:новообращенный локон отправлять отдыхать апи на Python

curl -X POST -s -k -u "admin:Password" -d ' 

{ 
"add_content": { 
    "errata_ids": ["RHSA-2016:2124","RHBA-2016:2889"] 
}, 
"content_view_version_environments": [{ 
    "content_view_version_id": 28 
}] 
} 
' \ 

-H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ https://satellite.example.com/katello/api/content_view_versions/incremental_update 

Мне нужно, чтобы преобразовать его в Python

это то, что у меня до сих пор:

def post_json(location, json_data): 


result = requests.post(
    location, 
    data=json_data, 
    auth=(USERNAME, PASSWORD), 
    verify=SSL_VERIFY, 
    headers=POST_HEADERS) 

return result.json() 

json_data = { 
    "add_content": { 
     "errata_ids": ["RHSA-2016:2124","RHBA-2016:2889"] 
    }, 
    "content_view_version_environments": [{ 
     "content_view_version_id": 301 
    }] 
} 

push_errata = post_json(katello_api + "content_view_versions + "/incremental_update/" + "content_view_version_environments/" + "add_content['RHSA-2016:1912']) 

Я получаю SyntaxError: invalid syntax

Не могли бы вы помочь мне «преобразовать» команду curl в python pro персидский?

+0

отступы, неуравновешенной цитата ... – bereal

ответ

0

С Authorization заголовком, вы можете сделать:

import requests, base64, json 

url = 'https://satellite.example.com/katello/api/content_view_versions/incremental_update' 

headers = { 
    'Accept': 'application/json,version=2', 
    'Content-Type': 'application/json', 
    'Authorization': 'Basic {}'.format(base64.b64encode('admin:Password'))} 

data = { 
    "add_content": { 
     "errata_ids": ["RHSA-2016:2124","RHBA-2016:2889"]}, 
    "content_view_version_environments": [ 
     {"content_view_version_id": 28 }]} 

response = requests.post(url=url, data=json.dumps(data), headers=headers) 

Вы можете также использовать auth параметры без Authorization заголовка, как этого

from requests.auth import HTTPBasicAuth 

headers = { 
    'Accept': 'application/json,version=2', 
    'Content-Type': 'application/json'} 

response = requests.post(url, auth=HTTPBasicAuth('admin', 'Password'), data=json.dumps(data), headers=headers) 
Смежные вопросы