python 2.7中的HTTP 2请求

Joh*_*tty 8 python http http2

在python中向HTTP/1和HTTP/2发出请求有什么不同吗?

我可以在python中进行HTTP/1.x调用

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
Run Code Online (Sandbox Code Playgroud)

python是否支持默认使用HTTP/2,或者我应该添加任何额外的东西.

Cze*_*ogy 7

作为参考,截至 2019 年,另一个支持 HTTP/2 的库是HTTPX

HTTPX 是 Python 3 的全功能 HTTP 客户端,它提供同步和异步 API,并支持 HTTP/1.1 和 HTTP/2。

这至少需要 Python 3.6。但是,在 2020 年撰写本文时,Python 2 已经停产,因此 Python 3.6 应该适合任何用户。


Ada*_*nek 6

正如其他人在对该问题的评论中所提到的,该requests库不支持HTTP/2.

requests图书馆文档:

请求允许您发送有机草草HTTP/1.1请求,而无需手工劳动.

截至目前,我所知道的Python唯一的HTTP/2客户端是hyper引用文档的:

支持Python 3.4和Python 2.7.9,可以说HTTP/2和HTTP/1.1