常见问题
Requests 自动解压缩的 gzip 编码的响应体,并在可能的情况下尽可能的将响应内容解码为 unicode.
如果需要的话,你可以直接访问原始响应内容(甚至是套接字)。
Requests 允许你使用其它的 HTTP Header 来轻松的覆盖自带的 User-Agent 字符串。
- Python 2.6
- Python 2.7
- Python 3.4
- Python 3.5
- Python 3.6
当 SSL certificate verification 发现服务器响应的认证和它认为自己连接的主机名不匹配时,就会发生这样的错误。如果你确定服务器的 SSL 设置是正确的(例如你可以用浏览器访问页面),而且你使用的是 Python 2.6 或者 2.7,那么一个可能的解释就是你需要 Server-Name-Indication。
简称 SNI,是一个 SSL 的官方扩展,其中客户端会告诉服务器它连接了哪个主机名。当服务器使用虚拟主机( Virtual Hosting)时这点很重要。这样的服务器会服务多个 SSL 网站,所以它们需要能够针对客户端连接的主机名返回正确的证书。
Python 3 和 Python 2.7.9+ 的 SSL 模块包含了原生的 SNI 支持。更多关于在 Request、SNI 以及 Python < 2.7.9 的信息请参见这个 。