Httplib模組使用

2021-07-11 05:29:25 字數 4172 閱讀 6739

httplib是乙個相對底層的http請求模組,其上有專門的包裝模組,如urllib內建模組,goto等第三方模組,但是封裝的越高就越不靈活,比如urllib模組裡請求錯誤時就不會返回結果頁的內容,只有頭資訊,對於某些需要檢測錯誤請求返回值的場景就不適用,所以就得用這個模組了。

vrequest-sent1、物件 httplib.

說明:該類用於建立乙個http型別的請求鏈結物件

選項:

host: 請求的伺服器host,不能帶http://開頭

port: 伺服器web服務埠

strict: 是否嚴格檢查請求的狀態行,就是http1.0/1.1 協議版本的那一行,即請求的第一行,預設為false,為true時檢查錯誤會拋異常

timeout: 單次請求的超時時間,沒有時預設使用httplib模組內的全域性的超時時間

返回:返回乙個httpconnection物件

例項:

說明:傳送乙個請求

選項:

method: 請求的方式,如』get』,』post』,』head』,』put』,』delete』等

url: 請求的網頁路徑。如:』/index.html』

body: 請求是否帶資料,該引數是乙個字典

headers: 請求是否帶頭資訊,該引數是乙個字典,不過鍵的名字是指定的http頭關鍵字

返回:無返回,其實就是相對於向服務其傳送資料,但是沒有最後回車

例項:

conn.request(『get』, 『/』, 」, )

(3)getresponse():

說明:獲取乙個http響應物件

返回:httpresponse物件

子函式:

<1>read([amt])

說明:獲得http響應的內容部分,即網頁原始碼

選項:

amt: 讀取指定長度的字元,預設為空,即讀取所有內容

返回:網頁內容字串

<2>getheaders() 獲得所有的響應頭內容,是乙個元組列表[(date,.),(content-length,.),(content-length,.),(content-type,.),(server,.)]

<3>getheader(name[,default]) 獲得指定的頭內容

<4>fileno() 獲得底層socket檔案描述符

<5>msg 所有的頭資訊,和getheaders方法一樣,只不過這個是原始未處理的字串

<6>status 獲得返回狀態碼

<7>version 當次請求的http協議版本,10是http1.0, 11是http/1.1

<8>reason 當次請求獲得返回說明,200是ok,404是not found

(4)close():

說明:關閉指定的httpconnect鏈結

例項:

#response是httpresponse物件

response.getheaders()原型:

key_file:乙個包含pem格式的私鑰檔案

cert_file:乙個包含pem格式的認證檔案

other:其它同http引數

返回:同樣返回乙個httpsconnection物件

注意:要建立https鏈結,必須要保證底層的socket模組是支援ssl的編譯模式,即編譯時ssl選項的開關是開著的

例項:

總體例項:

sendhttp()當然還有其它的一些資訊,比如異常型別,比如http的code對應表及查詢字典等等,可以直接參考官網httplib文件:

使用 HttpLib 來訪問 Web 服務

c 為開發者提供很多便利方法用來訪問各種 web 服務,但是編寫非同步的訪問方式卻是有點複雜。windows 通訊框架是乙個客戶端 伺服器通訊非常棒的工具。我精彩發現我自己必須寫很多 來使用已有的 api。微軟提供的這些 api 對一些基本的使用來說都是過於複雜。而 httplib 大大的簡化了在 ...

C 的HTTP開發包 HttpLib

select count from tb user info where dayofweek create date 3 and to days create date to days now and user role id 82 今日,在 codeplex 上看到乙個開源專案,對 http 協議...

beego客戶端請求httplib

httplib 庫主要用來模擬客戶端傳送 http 請求,類似於 curl 工具,支援 jquery 類似的鏈式操作。使用起來相當的方便 通過如下方式進行安裝 首先匯入包 然後初始化請求方法,返回物件 然後我們就可以獲取資料了 str,err req.string iferr nil fmt.pri...