Search code examples
pythonhttphttp2

HTTP 2 request in python 2.7


Is there any difference in making request to HTTP/1 and HTTP/2 in python.

I can make HTTP/1.x calls in python like

url = 'http://someURL'
values = {'param1' : 'key',
          'param2' : 'key2'}
data = urllib.urlencode(values)
print data
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page

Is python supporting making HTTP/2 by default or should I add anything extra.


Solution

  • As others mentioned in the comments to the question the requests library does not support HTTP/2.

    From the requests library documentation:

    Requests allows you to send organic, grass-fed HTTP/1.1 requests, without the need for manual labor.

    As of now the only HTTP/2 client for Python I know of is hyper, which quoting from the docs:

    supports Python 3.4 and Python 2.7.9, and can speak HTTP/2 and HTTP/1.1