HTTPie 1.0.0-dev
HTTPie data: /Users/kaji/.httpie
Requests 2.5.3
Pygments 2.0.2
Python 2.7.6 (default, Sep 9 2014, 15:04:36)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] darwin
Not every SSL website shows though. So, it is tricky. From browser , it is working fine.
>>> requests.request({'allow_redirects': False,
'auth': None,
'cert': None,
'data': OrderedDict(),
'files': DataDict(),
'headers': {'User-Agent': 'HTTPie/1.0.0-dev'},
'method': 'get',
'params': ParamsDict(),
'proxies': {},
'stream': True,
'timeout': 30,
'url': u'https://apissl.example.com',
'verify': True})
Traceback (most recent call last):
File "/usr/local/bin/http", line 9, in <module>
load_entry_point('httpie==1.0.0-dev', 'console_scripts', 'http')()
File "/Library/Python/2.7/site-packages/httpie/core.py", line 112, in main
response = get_response(args, config_dir=env.config.directory)
File "/Library/Python/2.7/site-packages/httpie/client.py", line 41, in get_response
response = requests_session.request(**kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 461, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 573, in send
r = adapter.send(request, **kwargs)
File "/Library/Python/2.7/site-packages/requests/adapters.py", line 431, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: [Errno 8] _ssl.c:507: EOF occurred in violation of protocol
@kajisaap ¿qué URL era? apissl.example.com
no se resuelve.
@jakubroztocil Lo pegaría, pero odio ver la URL de la empresa en la lista de problemas públicos. Es por eso que pegué el registro de depuración. ¿Cómo le envío un mensaje privado si la URL del punto final de API es crítica para fines de depuración?
@jakubroztocil , asumiendo la similitud aquí https://github.com/kennethreitz/requests/issues/2056
Parece un problema aguas arriba. Intente instalar los paquetes mencionados en el problema vinculado.
Tratar
$ pip install --force-reinstall requests[security]
@kajisaap envíeme un correo electrónico con la URL para que pueda brindarle una mejor ayuda con esto. Mi correo electrónico está en mi página de perfil .
@sigmavirus24 sudo pip install --force-reinstall 'requests[security]' --upgrade
ayudó. Estoy en Yosemite 10.10.2 si la información del sistema puede marcar la diferencia
@kajisaap ¿puedes comentar con openssl version
también?
Nota al margen: @jakubroztocil su llamada de depuración a las solicitudes es defectuosa. requests.request
no aceptará ese diccionario. Tiene que ser requests.request(**{ #...
por lo que vale.
@kajisaap también python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
$>python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 0.9.8zc 15 Oct 2014
@sigmavirus24 gracias, arreglado
Así que tengo 0 problemas con el sitio web en python 3.4.2. Así que esto parecería ser un problema de SNI. Como referencia, esta es mi versión de openssl:
>>> import ssl
>>> print(ssl.OPENSSL_VERSION)
OpenSSL 1.0.1l 15 Jan 2015
Pero además, solo tengo solicitudes instaladas.
En python 2.7.9, lo mismo funciona con la misma versión de openssl. Curiosamente, la instalación requests[security]
en un virtualenv temporal en py2.7.9 falla (y proporciona un error diferente porque SysCallError
de pyOpenSSL no tiene un método __str__
definido que devuelve correctamente formateado str
). Ese error también se debe a una falla en el apretón de manos. Actualizaría a python 2.7.9 (a través de brew o Python.org) y actualizaría openssl (a través de brew y force-linking). También estoy en OSX 10.10
Huele como un duplicado de #262 / #288.
@mathiasbynens , hasta donde puedo decir, esto no tiene nada que ver con SNI. Dicho esto, @kajisaap ha dejado de responder, así que estoy :+1: por cerrar esto como incompleto.
@ sigmavirus24 Estoy confundido: acaba de decir "Así que esto parece ser un problema de SNI" en su comentario anterior.
Confirmo que tengo este error también:
$ http https://larlet.fr
http: error: SSLError: [Errno 8] _ssl.c:507: EOF occurred in violation of protocol
Con esa versión de OpenSSL y HTTPie:
$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2 22 Jan 2015
$ http --version
0.9.2
Forcé la reinstalación con el módulo de seguridad de las solicitudes sin ninguna mejora.
Tengo el mismo problema al tratar de acceder a una aplicación Dropwizard hello-world en localhost (la respuesta esperada es una matriz JSON vacía).
$ http --verify=no https://localhost:8443/hello
http: error: SSLError: ("bad handshake: SysCallError(-1, 'Unexpected EOF')",) while doing GET request to URL: https://localhost:8443/hello
$ curl -k https://localhost:8443/hello
[]
Todavía estoy viendo esto:
$ python --version
Python 2.7.11
$ python -c 'import ssl; print(ssl.OPENSSL_VERSION)'
OpenSSL 1.0.2f 28 Jan 2016
Intenté forzar la reinstalación del módulo de seguridad de las solicitudes: no me gustó.
Hola,
Tengo el mismo problema con python 2.7.9 y el módulo de solicitudes cuando se ejecuta
r = solicitudes.get(url=urloo,headers=self.headers, verificar=Falso)
con urloo = https://10.xxx.xx.xxxx :yyyyy/oo/rest/latest/executions/21589456/summary
la devolución de la solicitud:
Archivo "C:ApplicationsPython27libsite-packagesrequests-2.9.1-py2.7.eggrequestsadapters.py", línea 447, en envío
aumentar SSLError (e, solicitud = solicitud)
solicitudes.excepciones.SSLError: [Errno 8] _ssl.c:507: EOF ocurrió en violación del protocolo
El encabezado de verificación se coloca en False
tal vez relacionado con kennethreitz/requests#3006
¿Alguien experimenta este problema con Python 2.7.6?
Si no, esto podría estar relacionado: http://stackoverflow.com/questions/32330919/python-ssl-ssl-sslerror-ssl-unsupported-protocol-unsupported-protocol-ssl
Pude resolver esto haciendo lo que sugirió @sigmavirus24
pip install --force-reinstall requests[security]
Esto fue con python 2.7.10 en macOS Sierra 10.12
https://github.com/jkbrzt/httpie#sni -indicación del nombre del servidor
Acabo de encontrar este problema en https://github.com/apache/fineract/pull/644 , con cualquier versión que apt-get install httpie
se instale en Travis CI (con dist: trusty
). El uso --verify=no
(¡NO --verify no
!) lo arregló. (NO querrá usar esto para un sitio web público con SSL; en mi caso, fue solo para un https://localhost:8443/... con un certificado autofirmado).
https://github.com/jkbrzt/httpie#sni -indicación del nombre del servidor
FYI, este ancla parece haber sido eliminada mientras tanto.
Comentario más útil
Tratar
@kajisaap envíeme un correo electrónico con la URL para que pueda brindarle una mejor ayuda con esto. Mi correo electrónico está en mi página de perfil .