Python Requests.Exceptions.SSLError: EOF произошел с нарушением протоколаPython

Программы на Python
Ответить
Anonymous
 Python Requests.Exceptions.SSLError: EOF произошел с нарушением протокола

Сообщение Anonymous »

Я бы получил некоторую информацию от шлюза ABB G13, который предлагает RESTful JSON API. API размещается на шлюзе через конечную точку https.
Для аутентификации используется базовый механизм аутентификации. Однако весь трафик
проходит через уровни SSL.

В Linux с помощью команды:

Код: Выделить всё

curl -s -k -X GET -u user:password https://host/meters/a_serial/power
Все идет хорошо!

Я пытаюсь написать скрипт для окон на Python 2.7.10 с помощью Запрашивает 2.8.1 и с этим кодом:

Код: Выделить всё

import requests
requests.get('https://host/meters/a_serial/power', auth=('user', 'password'))
У меня такая ошибка:

Код: Выделить всё

Traceback (most recent call last):
File "C:/Users/mzilio/PycharmProjects/pwrgtw/test.py", line 20, in 
requests.get('https://host/meters/a_serial/power', auth=('user', 'password'))
File "C:\Python27\lib\site-packages\requests\api.py", line 69, in get
return request('get', url, params=params, **kwargs)
File "C:\Python27\lib\site-packages\requests\api.py", line 50, in request
response = session.request(method=method, url=url, **kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "C:\Python27\lib\site-packages\requests\adapters.py", line 433, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:590)
Я искал решение и попытался исправить его с помощью этого кода:

Код: Выделить всё

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
import ssl

class MyAdapter(HTTPAdapter):
def init_poolmanager(self, connections, maxsize, block=False):
self.poolmanager = PoolManager(num_pools=connections,
maxsize=maxsize,
block=block,
ssl_version=ssl.PROTOCOL_TLSv1)

s = requests.Session()
s.mount('https://', MyAdapter())
s.get('https://host/meters/a_serial/power')
Но у меня это не работает, потому что я получаю эту ошибку:

Код: Выделить всё

Traceback (most recent call last):
File "C:/Users/mzilio/PycharmProjects/pwrgtw/test.py", line 16, in 
s.get('https://host/meters/a_serial/power')
File "C:\Python27\lib\site-packages\requests\sessions.py", line 480, in get
return self.request('GET', url, **kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python27\lib\site-packages\requests\sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "C:\Python27\lib\site-packages\requests\adapters.py", line 433, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:590)
Я застрял в этой проблеме. Может ли кто-нибудь мне помочь? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/334 ... f-protocol
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»