一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 使用httplib模塊來制作Python下HTTP客戶端的方法

使用httplib模塊來制作Python下HTTP客戶端的方法

2020-07-16 10:37DarkBull Python

這篇文章主要介紹了使用httplib模塊來制作Python下HTTP客戶端的方法,文中列舉了一些httplib下常用的HTTP方法,需要的朋友可以參考下

httplib 是 python中http 協議的客戶端實現,可以使用該模塊來與 HTTP 服務器進行交互。httplib的內容不是很多,也比較簡單。以下是一個非常簡單的例子,使用httplib獲取google首頁的html:
 

?
1
2
3
4
5
6
#coding=gbk
import httplib
conn = httplib.HTTPConnection("www.google.cn")
conn.request('get', '/')
print conn.getresponse().read()
conn.close()

下面詳細介紹httplib提供的常用類型和方法。
httplib.HTTPConnection ( host [ , port [ , strict [ , timeout ]]] )

HTTPConnection類的構造函數,表示一次與服務器之間的交互,即請求/響應。參數host表示服務器主機,如:www.csdn.net;port為端口號,默認值為80; 參數strict的 默認值為false, 表示在無法解析服務器返回的狀態行時( status line) (比較典型的狀態行如: HTTP/1.0 200 OK ),是否拋BadStatusLine 異常;可選參數timeout 表示超時時間。
HTTPConnection提供的方法:
HTTPConnection.request ( method , url [ , body [ , headers ]] )

調用request 方法會向服務器發送一次請求,method 表示請求的方法,常用有方法有get 和post ;url 表示請求的資源的url ;body 表示提交到服務器的數據,必須是字符串(如果method 是”post” ,則可以把body 理解為html 表單中的數據);headers 表示請求的http 頭。
HTTPConnection.getresponse ()

獲取Http 響應。返回的對象是HTTPResponse 的實例,關于HTTPResponse 在下面 會講解。
HTTPConnection.connect ()

連接到Http 服務器。
HTTPConnection.close ()

關閉與服務器的連接。
HTTPConnection.set_debuglevel ( level )

設置高度的級別。參數level 的默認值為0 ,表示不輸出任何調試信息。
httplib.HTTPResponse

HTTPResponse表示服務器對客戶端請求的響應。往往通過調用HTTPConnection.getresponse()來創建,它有如下方法和屬性:
HTTPResponse.read([amt])

獲取響應的消息體。如果請求的是一個普通的網頁,那么該方法返回的是頁面的html。可選參數amt表示從響應流中讀取指定字節的數據。
HTTPResponse.getheader(name[, default])

獲取響應頭。Name表示頭域(header field)名,可選參數default在頭域名不存在的情況下作為默認值返回。
HTTPResponse.getheaders()

以列表的形式返回所有的頭信息。
HTTPResponse.msg

獲取所有的響應頭信息。
HTTPResponse.version

獲取服務器所使用的http協議版本。11表示http/1.1;10表示http/1.0。
HTTPResponse.status

獲取響應的狀態碼。如:200表示請求成功。
HTTPResponse.reason

返回服務器處理請求的結果說明。一般為”OK”

下面通過一個例子來熟悉HTTPResponse中的方法:
 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#coding=gbk
import httplib
conn = httplib.HTTPConnection("www.g.cn", 80, False)
conn.request('get', '/', headers = {"Host": "www.google.cn",
                  "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1) Gecko/20090624 Firefox/3.5",
                  "Accept": "text/plain"})
res = conn.getresponse()
print 'version:', res.version
print 'reason:', res.reason
print 'status:', res.status
print 'msg:', res.msg
print 'headers:', res.getheaders()
#html
#print '/n' + '-' * 50 + '/n'
#print res.read()
conn.close()

這是我用firebug跟蹤到響應頭:

使用httplib模塊來制作Python下HTTP客戶端的方法

Httplib模塊中還定義了許多常量,如:

Httplib. HTTP_PORT 的值為80,表示默認的端口號為80;

Httplib.OK 的值為200,表示請求成功返回;

Httplib. NOT_FOUND 的值為404,表示請求的資源不存在;

可以通過httplib.responses 查詢相關變量的含義,如:

Print httplib.responses[httplib.NOT_FOUND]    #not found

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产亚洲sss在线观看 | 精品国产成人AV在线看 | 男同激情视频 | 青草草在线观看 | 色综合天天综合中文网 | 夫妻性生活一级黄色片 | 国产播放器一区 | se01在线看片 | 男生操女生的漫画 | 8x8拨擦拨擦华人免费 | 精品AV无码一二三区视频 | 亚洲人成影院午夜网站 | 五月天黄网 | 免费观看a毛片一区二区不卡 | 亚洲视频高清 | 网站久久 | 日本道高清 | 日本动漫打扑克动画片樱花动漫 | 成人在线免费播放 | 韩剧网3600热播剧 | 百合女女师生play黄肉黄 | 国产啪精品视频网给免丝袜 | 女暴露狂校园裸露小说 | 干美女在线视频 | 日韩精品福利视频一区二区三区 | 欧美视频一级 | 99re在线精品视频免费 | 久久精品AV一区二区无码 | 干露露视频 性感写真 | 日日干夜夜拍 | 国内精品一区二区在线观看 | 美国女孩毛片 | 国内在线播放 | 欧美午夜视频一区二区三区 | 香蕉久久一区二区三区啪啪 | 日韩成人精品 | 精品国产免费久久久久久婷婷 | 午夜一级影院 | 久久大胆视频 | 国产精品1页 | 很黄的孕妇a级黄毛片 |