python:http.client--- HTTP 协议客户端
该模块支持以下类:
class http.client. HTTPConnection ( host , port=None , [ timeout , ] source_address=None , blocksize=8192
举个例子,以下调用都是创建连接到同一主机和端口的服务器的实例:
>>>
h1 = http.client.HTTPConnection('www.python.org')
h2 = http.client.HTTPConnection('www.python.org:80')
h3 = http.client.HTTPConnection('www.python.org', 80)
h4 = http.client.HTTPConnection('www.python.org', 80, timeout=10)
在3.2 版更改:添加了source_address 参数
在3.4 版更改: The strict parameter was removed. HTTP 0.9-style “Simple Responses” are no longer supported.
在3.7 版更改:添加了blocksize参数。
class http.client. HTTPSConnection ( host , port=None , key_file=None , cert_file=None , [ timeout , ] source_address=None , * , context=None , check_hostname=None , blocksize=8192 )
HTTPConnection的子类,使用SSL 与安全服务器进行通信。默认端口为443。如果指定了context,它必须为一个描述SSL 各选项的 ssl.SSLContext 实例。
请参阅 安全考量 了解有关最佳实践的更多信息。
在3.2 版更改:添加了source_address , context和check_hostname。
在3.2 版更改:这个类目前会在可能的情况下(即如果 ssl.HAS_SNI 为真值)支持HTTPS 虚拟主机。
在3.4 版更改:删除了strict参数,不再支持HTTP 0.9 风格的“简单响应”。
在3.4.3 版更改:目前这个类在默认情况下会执行所有必要的证书和主机检查。要回复到先前的非验证行为,可以将 ssl._create_unverified_context() 传递给context参数。
在3.8 版更改:该类现在对于默认的context或在传入cert_file并附带自定义context时会启用TLS 1.3 ssl.SSLContext.post_handshake_auth。
在3.10 版更改:现在,若未给出context,则会发送一个带有协议指示器 http/1.1 的ALPN 扩展。自定义context应用 set_alpn_protocol() 设置ALPN 协议。
3.6 版后已移除: key_file和cert_file已弃用并转而推荐context。请改用 ssl.SSLContext.load_cert_chain() 或让 ssl.create_default_context() 为你选择系统所信任的CA 证书。
check_hostname参数也已弃用;应当改用context的 ssl.SSLContext.check_hostname 属性。
class http.client. HTTPResponse ( sock , debuglevel = 0 , method = None , url = None )
在成功连接后返回类的实例,而不是由用户直接实例化。
在3.4 版更改:删除了strict参数,不再支持HTTP 0.9 风格的“简单响应”。
这个模块定义了以下函数:
http.client. parse_headers ( fp )
从文件指针fp中解析头部信息,该文件代表HTTP 请求/响应。该文件必须是BufferedIOBase reader 对象(即不是文本),并且必须提供符合RFC 2822格式的头部。
该函数返回 http.client.HTTPMessage 的实例,带有头部各个字段,但不带正文数据(与 HTTPResponse.msg 和 http.server.BaseHTTPRequestHandler.headers 一样)。返回之后,文件指针fp已为读取HTTP 正文做好准备了。
备注 parse_headers()不会解析HTTP 消息的开始行;只会解析各 行。文件必须为读