http 模块简介
Python3 中的 http 包中含有几个用来开发 HTTP 协议的模块。
http.client 是一个底层的 HTTP 协议客户端,被更高层的 urllib.request 模块所使用。 http.server 包含基于 socketserver 的基本 HTTP 服务器的类。 http.cookies 实现 cookie 状态管理 http.cookiejar 与 cookie 相关http 模块还定义了一系列的 HTTP 状态码。
HTTPStatus 类是在 Python 3.5 版本中新增的。
>>> from http import HTTPStatus>>> HTTPStatus.OK<HTTPStatus.OK: 200>>>> HTTPStatus.OK == 200True>>> http.HTTPStatus.OK.value200>>> HTTPStatus.OK.phrase'OK'>>> HTTPStatus.OK.description'Request fulfilled, document follows'>>> list(HTTPStatus)[<HTTPStatus.CONTINUE: 100>, <HTTPStatus.SWITCHING_PROTOCOLS: 101>, ...]
具体的 HTTP 状态码和相应的说明可以在 Python 的官方文档上找到: https://docs.python.org/3/library/http.html
http.client 模块
http.client 模块定义了实现 http 和 https 协议客户端的类。
该模块通常不会直接使用,而是用封装好的 urllib.request 模块来使用他们处理 URL 。
常量
http 模块中的常量:
1、http.client.HTTP_PORT
http 协议默认的端口号,总是 80 端口
2、http.client.HTTPS_PORT
https 协议默认的端口号,总是 443 端口
3、http.client.responses
将 HTTP 1.1 状态码映射到 W3C 名字的字典。
例如:
http.client.responses[http.client.NOT_FOUND] is 'Not Found'
基本类
HTTPConnection 类
http.client.HTTPConnection(host, port=None, [timeout, ]source_address=None)
HTTPConnection 实例表示与 HTTP 服务器的事务。
实例化 HTTPConnection 时应该传递一个主机和可选的端口号。如果没有传递端口,而主机字符串是以 host:port 的形式,则会提取出端口值,否则将使用默认的 8- 端口。
如果给定了可选参数 timeout ,阻塞操作将会在给定的时间后超时,若未给定,则使用默认的全局 timeout 设置。
可选参数 source_address 应该以 host 和 port 的元组形式 (host,port),用来作为 HTTP 连接的源地址。
示例代码如下:
>>> 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)
source_address 是在 3.2 版本中添加的。
strict 参数在 3.4 版本中移除了。
HTTPSConnection 类
HTTPSConnection(host, port=None, key_file=None, cert_file=None, [timeout, ]source_address=None, *, context=None, check_hostname=None)
新闻热点
疑难解答