Превышено максимальное количество повторных попыток и сбой проверки сертификата в Http Post Request в Python с использованием модуля запросов - PullRequest
0 голосов
/ 16 июня 2019

Я отправляю запрос POST Http через модуль запросов в Python.Но некоторые проблемы HTTPSConnectionPool и Max Retries приходят.

Я пробовал много решений, которые я нашел на других платформах, таких как обновление библиотеки pyOpenSSL, Использование обработки исключений при ошибке соединения, Предоставление некоторого времени ожидания около 5 секунд. Но ничегорешая мою проблему.По-прежнему выдается сообщение об ошибке, например, проблемы с подключением, не удалось выполнить максимальное количество попыток и не удалось проверить сертификат.В PostMan тот же URL-адрес POST работает отлично, Тип авторизации: Нет аутентификации.Заголовок: Тип содержимого: application / json и авторизационный токен, а в теле: данные в json.Но Python-код для достижения того же не работает, а именно:

import requests
import time

url_api = "POST Url"

header = { 
"Content-Type": "application/json", 
"Authorization": "AutheticationIDXYZ" 
}
payload ={
            "name": "python1236",
            "description": "python1236"
           }

r = requests.post(url = url_api, data = payload,json = header)
time.sleep(3)
r.raise_for_status() 
print(r.status_code,r.reason)

Ожидаемый результат заключается в том, что он должен возвращать ответ json, но с ошибкой "TTPSConnectionPool (host = 'api.com', port =443): Максимальное количество повторных попыток превышено с помощью url: / api / v1 / projects (вызвано SSLError (SSLError ("плохое рукопожатие: ошибка ([('Подпрограммы SSL', 'tls_process_server_certificate', 'сбой проверки сертификата')])"))) "

Что-то не так в моем коде или в моем подходе.Я новичок в Python API Framework, поэтому Flask может решить мою проблему в любом случае. Любое предложение и помощь будут оценены, спасибо.

1 Ответ

0 голосов
/ 17 июня 2019

Вы можете отключить проверку SSL, как в почтальоне:

r = requests.post(url = url_api, data = payload,json = header, verify = False)

Хотя это может быть опасно и, конечно, не должно использоваться в рабочем коде. Чтобы избежать этого, рассмотрите возможность установки сертификата API.

...