Я пытаюсь преобразовать запрос Curl POST в python скрипт, и я не получаю желаемый вывод, пожалуйста, дайте мне знать, что я делаю не так здесь.
CURL request
curl -s -w '%{time_starttransfer}\n' --request POST \
--url http://localhost:81/kris/execute \
--header 'content-type: application/json' \
--data '{"command":["uptime"], "iplist":["10.0.0.1"], "sudo":true}'
Это выполняется команда uptime в узле, для которого предоставляется ip, и возвращает вывод JSON:
{"command":"uptime","output":["{\"body\":\" 17:30:06 up 60 days, 11:23, 1 user, load average: 0.00, 0.01, 0.05\\n\",\"host\":\"10.0.0.1\"}"]}0.668894
Когда я пытаюсь выполнить то же самое с python, она завершается неудачно и никогда не получает вывод
Код:
import urllib3
import json
http = urllib3.PoolManager()
payload = '{"command":["uptime"], "iplist":["10.0.0.1"], "sudo":true}'
encoded_data = json.dumps(payload)
resp = http.request(
'POST',
'http://localhost:81/kris/execute ',
body=encoded_data,
headers={'Content-Type': 'application/json'})
print(resp)