The sophisticated http client in Python is
requests, it has simple API but powerful features. You can use it for crawling, sending request to third-party API or writing tests.
Btw, at this moment it doesn't support HTTP/2 protocol (actually we often doesn't need its
Server Push or
Multi resource stream features). But sometime the API endpoint only supports HTTP/2 like Akamai Load Balacing service.
The hero is new library named
hyper, it has been developing to support full HTTP/2 specs. But if all we need is requesting single request to a HTTP/2 server. It works like a charm.
$ pip install requests $ pip install hyper
from hyper.contrib import HTTP20Adapter
s = requests.Session()
r = s.get('https://cloudflare.com/')
This mean any url has prefix
https:// will be hanlded by HTTP20Adaper of hyper library
If you run above example, you will see the result
While you expected it would auto-follow redirect to the page
We can fix it by using the newer version than
0.7.0 to fix the header key bytestring issue
$ pip uninstall hyper $ pip install https://github.com/Lukasa/hyper/archive/development.zip
Then try it out !!!