python的http包

http包簡介html

http包提供了 HTTP協議的一些功能,主要模塊有:瀏覽器

http.client   --- 底層的 HTTP 協議的一些功能,能夠爲 urllib.request 模塊所用服務器

http.server   --- 提供了基於 socketserver模塊的基本 HTTP服務器類cookie

http.cookies   --- cookies 的管理工具socket


http.client  :工具

HttpClient不是一個瀏覽器。它是一個客戶端的HTTP通訊實現庫。HttpClient的目標是發送和接收HTTP報文。url

兩個主要類(用於客戶端):spa

HTTPConnection   :基於HTTP協議的客戶端,指定 URL(網址) 後,能夠 發送請求報文 和 接收響應報文 code

HTTPRespone       :基於 HTTP 協議的服務端迴應。一旦用 HTTPConnection 成功鏈接,能夠調用相關方法返回該實例(HTTPRequest實例)。server

 

(1)HTTPConnection 的方法:

構造方法: HTTPConnection( host,port,[timeout] )  返回一個HTTPConnection 實例

host:表示主機域名或 ip 地址

port:表示端口

timeout:阻塞操做將會在給定時間後超時。可選項

 

發送請求報文方法:HTTPConnection.request( method,url,body =None,headers = {} )

method:發送的操做,通常爲 GET 或者 POST

url         :進行操做的 url

body     :所發送的數據

headers:發送的 HTTP頭部,是一個字典類型

 

獲取響應報文方法:HTTPConnection.getrespone(  )

關閉與服務器的鏈接: HTTPConne.close()

發送一個頭部:HTTPConnection.putheader( header,args[ ] )      #頭部以一個字典方式發送

發送一個空白行到服務器,標誌頭部Header的結束:HTTPConnection.endheaders(  )

發送數據到服務器:HTTPConnection.send( data )       ,應該在endheaders()以後 和 getrespone()以前調用。

 

 

(2)HTTPRespone:

HTTPRespone對象:一旦用 HTTPConnection 成功鏈接,能夠調用HTTPConnection.getrespone()返回該實例(HTTPRequest實例)。

HTTPRespone.getheader(name)  :返回頭部中的 name 字段對應的值

HTTPRespone.getheaders( )       :以元組的方式返回整個頭部的信息

HTTPRespone.read()                  :返回響應報文中的body部分,也即正文部分

HTTPRespone.status   #返回狀態碼

HTTPRespone.version  #返回 HTTP協議版本

 

http 包應用實例 。

from http.client import HTTPConnection
 
con = HTTPConnection('www.baidu.com',80)
con.request('GET','/')           #發送請求報文
res = con.getresponse()          #獲取響應報文對象
print(res.status)   #200   (表示狀態碼)
print(res.reason)   #OK      (表示狀態碼對應的意義)
print(res.read().decode('utf-8'))   #打印www.baidu.com的html
相關文章
相關標籤/搜索