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)
新聞熱點
疑難解答