#python #curl
#python #curl
Вопрос:
Следующая команда может отправить значение в один из моих внутренних веб-сервисов.
curl -k -X POST -d 'value={"test":"test"}' "https://myinternalsite/....." -u 'username:password'
И мне нужен скрипт python для реализации, поэтому у меня есть следующий скрипт:
import requests
from requests.auth import HTTPBasicAuth
url='https://myInternalWebsite/....'
json={'test':'test'}
username='....'
password = '....'
auth = HTTPBasicAuth(username, password)
resp = requests.post(url, json=json, auth=auth, verify=False)
resp.content
Скрипт завершен без каких-либо ошибок (200). Но json
значение не публикуется. Не уверен, что внутренний сайт не может обработать этот json=
параметр? Как реализовать -d 'value={"test":"test"}'
curl в python?
Ответ №1:
Когда вы используете json
аргумент, он не передает его в качестве значения value
параметра, он отправляет JSON в качестве необработанного тела сообщения.
Если это должно быть значение параметра POST, используйте data
аргумент и вызывайте json.dumps()
явно.
resp = requests.post(url, data = {"value": json.dumps(json)}, auth=auth, verify=False)