Python自動化測試 :urllib2 傳送HTTP Request

disable發表於2021-09-09

urllib2 是Python自帶的標準模組, 用來傳送HTTP Request的。  類似於 .NET中的,  HttpWebRequest類

 

urllib2 的優點

Python urllib2 發出的HTTP Request, 能自動被Fiddler截獲, 方便了除錯。

Python 可以自動處理Cookie

 

urllib2 的缺點

Python urllib2 發出的http Request, 中的header 會被修改成“首字母大寫”,

比如你的程式碼裡寫的header 是: content-TYPE=application/x-www-form-urlencoded ,  會被修改為 Content-Type=application/x-www-form-urlencoded

 

例項一,  Get方法, 並且自定義header

 

圖片描述

# -* - coding: UTF-8 -* -  import urllib2request = urllib2.Request("")request.add_header('content-TYPE', 'application/x-www-form-urlencoded')response = urllib2.urlopen(request)print response.getcode()print response.geturl()print response.read()

圖片描述

 

例項二, post方法

 

圖片描述

# -* - coding: UTF-8 -* -  import urllib2import urllibrequest = urllib2.Request("http://passport.cnblogs.com/login.aspx")request.add_header('content-TYPE', 'application/x-www-form-urlencoded')data={"tbUserName":"test_username", "tbPassword":"test_password"}response = urllib2.urlopen(request, urllib.urlencode(data))print response.getcode()print response.geturl()print response.read()

圖片描述

 

例項三: Cookie 的處理

 

圖片描述

# -* - coding: UTF-8 -* -  import urllib2import urllibimport cookielibcj = cookielib.CookieJar()opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))request = urllib2.Request("")request.add_header('content-TYPE', 'application/x-www-form-urlencoded')data={"tbUserName":"test_username", "tbPassword":"test_password"}response = opener.open(request, urllib.urlencode(data))# send again, you will see cookie sent to web serverresponse = opener.open(request, urllib.urlencode(data))print response.getcode()print response.geturl()print response.read()

圖片描述

 

例項四:如何處理跳轉

建立Opener時, ul2.HTTPRedirectHandler是預設被加上的handler之一 

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/200/viewspace-2811545/,如需轉載,請註明出處,否則將追究法律責任。

相關文章