Конвертировать с помощью curl в запросы Python с несколькими параметрами ssl

1

Мне было предложено написать сценарий python, который отправит почтовый запрос в защищенный API, для которого требуется ключ, и 2 сертификата ("cert" и "cacert"). Обычно я использую bash с curl и набираю его вручную следующим образом:

curl -d "@data.json" -X POST https://example.com/api/v1/ --cert cert1.crt  --key key.key --cacert cert2.crt

Я пытался преобразовать его в запросы python и все методы ssl в разделе "params", как это, он не работал:

data = open('data.json')
params = {'cert': 'cert1.crt',
          'key ': 'key.key',
          'cacert': 'cert2.crt'
          }

response = requests.post('https://example.com/api/v1/',
                             data=data, params=params)

Согласно требованиям, я должен использовать "запросы", а не "pycurl".

Кто-нибудь может помочь?

Теги:
python-requests
post

1 ответ

0
Лучший ответ

Я нашел решение, очевидно, cacert - это сертификат пакета, который должен быть проверен перед отправкой запроса, а затем я должен использовать сам сертификат и ключ.

Так выглядит:

with open('data.json', 'r') as f:
    data = json.loads(f.read())

response = requests.post("https://example.com", json=data,
                         verify="cert2.crt", cert=("cert1.crt", "key.key"))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню