#python #http-post
Вопрос:
import requests,json
verify='/users/myprofile/Downloads/.me/ca_bundle.crt'
data = {"Authorization": "Basic ODE2YzMzM2ZmYzUwNDg1MThlNTJmMWMyMWJiYzZhOTQ6NWExNDFhMGExNGI4NGQ2OWIyMjUxYTI2OGYwZDJlYjk="}
url = "https://api.pge.com/datacustodian/test/oauth/v2/token?grant_type=client_credentials"
response = requests.post(url, cert=('/users/David/Downloads/bei.me/private.key', data)
#print("status code", response.status_code)
Ошибка, которую я получаю:
Файл «SSLTest.py», строка 12
^
Синтаксическая ошибка: неожиданный EOF при синтаксическом анализе
Как мне включить свой общедоступный сертификат при вызове api коммунальной компании? Они заставили меня представить свой публичный сертификат
Ответ №1:
Вы должны положить:
response = requests.post(url, cert='/users/David/Downloads/bei.me/private.key', data)
В дополнение:
Сертификат ЦС не является обязательным для общедоступных веб-сайтов
PS: ваша переменная данных выглядит как заголовок, поэтому вы можете захотеть:
response = requests.post(url, cert='/users/David/Downloads/bei.me/private.key', headers=data)
Комментарии:
1. это не настоящий веб-сайт (мой-нет), просто сертификат, подтверждающий, что я тот, кто говорит, что я есть, когда я публикую его на веб-сайте pge (у них есть мой сертификат).
2. спасибо, теперь я получаю запросы.исключения. Ошибка SSL: HTTPSConnectionPool(хост=’api.pge.com’, порт=443): Превышено максимальное количество повторных попыток с url: /datacustodian/test/oauth/v2/токен?grant_type=client_credentials (Вызвано ошибкой SSL(ошибка SSL(9, ‘[SSL] PEM lib (_ssl.c:3880)’)))
3. Использование ключевого слова cert позволит протоколу SSL работать с конкретными веб-сайтами, созданными самостоятельно. Вы не должны помещать сюда свой закрытый ключ. вы можете просто положить:
response = requests.post(url, headers=data)
4. PGE требует сертификат для сквозной связи со своим API