конвертировать вызов curl / rest в python - PullRequest
0 голосов
/ 22 мая 2018

Можно ли перевести вызов rest с помощью curl, чтобы использовать библиотеку запросов urllib2 / запросы в python

curl -s -k -X POST -H
'Content-Type:application/knd.com.ns.systembackup+json'
--basic --user $uname:$pwd -d '{"systembackup":{"filename":"test_backup","level":"basic"}}' 'http://$ip/nit/v1/config/systembackup?action=create'

Вот что я пробовал:

import urllib2

Url = 'http://ip/nit/v1/config/systembackup?action=create'
data = [{"systembackup":{"filename":"test_backup","level":"full"}}]

def encodeUserData(uname, pwd):
    return "Basic " + (uname + ":" + pwd).encode("base64").rstrip()

req = urllib2.Request(Url)
req.add_header('Accept', 'application/json')
req.add_header("Content-type", "application/knd.com.ns.systembackup+json")
req.add_header('Authorization', encodeUserData(uname, pwd))

res = urllib2.urlopen(req)
print res.read()

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Добавление auth к ответу выше.

payload = "{\"systembackup\":{\"filename\":\"test_backup\",\"level\":\"full\"}}"

Url = 'http://ac.com/nitro/v1/config/systembackup'

querystring = {"action":"create"}

headers = {

    'Content-Type': "application/knd.com.ns.systembackup+json",

    'Cache-Control': "no-cache"

    }

r = requests.request("POST", Url, data=payload, auth=(uname, pwd), headers=headers, params=querystring, verify=False)
print (r.text)
0 голосов
/ 22 мая 2018

Вы можете использовать https://www.getpostman.com/ для него.

  1. Нажмите «Импорт» и вставьте код скручивания.

  2. Нажмите «Код» и выберите Python, а затем Запросы .enter image description here

  3. Скопируйте код запросов Python enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...