Open nqbao opened 4 years ago
I found the issue: if we don't supply the ssl context, it will use the default ssl context, which use h2 by default: https://github.com/python-hyper/hyper/blob/bc0738bdf7afdc1236e8154868352b58850fdf1a/hyper/tls.py#L114
The only way to force http/1.1 is to supply your own ssl context like below:
from hyper.tls import init_context
ssl_context = init_context()
ssl_context.set_alpn_protocols(["http/1.1"])
try:
conn = HTTP11Connection('www.cloudflare.com:443', secure=True, ssl_context=ssl_context)
req = conn.request('GET', '/')
rep = conn.get_response() # now it works
except Exception as ex:
print(ex) # <-- this will print h2
I think HTTP11Connection should works without providing the ssl context. One way to fix this is to have another ssl context for HTTP11Connection. What do you think?
Sample code
Expected behavior is to use http/1.1 protocol.