hyper
hyper copied to clipboard
How to https?
Consider
from hyper import HTTPConnection
c = HTTPConnection('www.peterbe.com')
c.request('GET', '/')
resp = c.get_response()
print(resp.status)
print(resp.headers['location'])
Output becomes:
301
[b'https://www.peterbe.com/']
That's like doing curl -v http://www.peterbe.com
which will also respond with:
< HTTP/1.1 301 Moved Permanently
< Server: cloudflare-nginx
< Date: Wed, 24 Apr 2019 13:32:25 GMT
< Content-Type: text/html
< Content-Length: 162
< Connection: keep-alive
< Location: https://www.peterbe.com/
I think the problem is that http://www.peterbecom
is HTTP/1.1 whereas https://www.peterbe.com
is HTTP/2. ...if that matters.
PS the immediate "solution" is to do it like this instead:
-c = HTTPConnection('www.peterbe.com',)
+c = HTTPConnection('www.peterbe.com', port=443)
then it works as expected. Clunky though. That's why I think this issue should stay open till it's less clunky.
The documentation says:
By default, all HTTP/2 connections are made over TLS.
@Asmeble How does that help when trying to use hyper
?
Also, how is that different from regular requests
?