在介紹requests庫以前,先貼一下requests官網,固然也能夠訪問requests中文網站python
requests官網給出如下介紹:Requests 惟一的一個非轉基因的 Python HTTP 庫,人類能夠安全享用。但同時也給出了警告:非專業使用其餘 HTTP 庫會致使危險的反作用,包括:安全缺陷症、冗餘代碼症、從新發明輪子症、啃文檔症、抑鬱、頭疼、甚至死亡。看吧,這就是 Requests 的威力!git
由於咱們安裝的版本是Python3.6.6,因此在安裝過程當中已經默認幫咱們安裝好了pip,咱們能夠打開cmd窗口,輸入pip install requests
github
在網絡基礎中,咱們介紹到HTTP的8種請求方法,分別是GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT,可是在實際工做中,咱們經常使用的請求方法可能只有6種,GET、HEAD、POST、PUT、DELETE、OPTIONS。下面咱們看看這6種方法如何使用吧。json
在介紹如何使用6種請求方法以前,咱們先來看一下URL組成格式。windows
protocol://hostname[:port]/path/[:parameter][?query]#fragmentapi
protocol:協議,經常使用的協議是http安全
hostname:主機地址 能夠是域名,也能夠是IP地址微信
port:端口 http協議默認端口是:80端口,若是不寫默認就是:80端口網絡
path:路徑 由零或多個「/」符號隔開的字符串,通常用來表示主機上的一個目錄或文件地址。app
parameter :參數 這是用於指定特殊參數的可選項。
query: 查詢 可選,用於給動態網頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP。NET等技術製做的網頁)傳遞參數,可有多個參數,用「&」符號隔開,每一個參數的名和值用「=」符號隔開。
fragment:片斷 用於指定網絡資源中的片段。例如一個網頁中有多個名詞解釋,可以使用fragment直接定位到某一名詞解釋。
雖然URL組成格式很複雜,可是咱們通常看到的沒這麼複雜,好比百度https://www.baidu.com/
,https是協議http://www.baidu.com
是域名。端口是80,被隱藏。
GET請求有2種狀況,一種是帶參數,一種是不帶參數。格式以下:
requests.get(url)
requests.get(url, params= parameter)
上面代碼中,params是固定寫法,parameter表明參數,在使用requests構造請求前,請先導入requests庫,打開咱們的Pycharm ,輸入以下代碼:
import requests response1 = requests.get('https://api.github.com/events') payload = {'key1': 'value1', 'key2': ['value2', 'value3']} response2 = requests.get('http://httpbin.org/get', params=payload) print(response1) print(response2)
上面代碼將輸出以下內容:
<Response [200]>
<Response [200]>
當咱們構造一個請求時,通常來講,都會有響應,代碼中的response一、response2就是請求的響應。咱們能夠查看響應的url、text(響應內容)、content(二進制響應內容)、json響應內容、raw(原始響應內容)等,使用起來也較爲簡單,以下代碼所示:
response.url response.text response.content response.json response. Raw
固然咱們也能夠給請求加入headers,有關headers內容,咱們在HTTP請求與響應中,已經介紹過,加入headers的GET請求格式以下:
import requests url = 'https://api.github.com/some/endpoint' headers = {'user-agent': 'my-app/0.0.1'} response = requests.get(url, headers=headers)
Post請求構造起來也比較簡單,格式以下:
requests.post(url, data= parameter)
requests.post(url, json= parameter)
上面代碼中,params是固定寫法,data/json表明參數類型,爲了方便理解,下面咱們將構造一些實例, 以下代碼所示:
import requests payload = {'key1': 'value1', 'key2': 'value2'} response = requests.post("http://httpbin.org/post", data=payload) # data格式參數 print(response.text) print(response.url) print(response.content) print(response.raw) print(response.json()) url = 'https://api.github.com/some/endpoint' payload = {'some': 'data'} r = requests.post(url, json=payload) # json 格式參數 print(r.text)
咱們還能夠使用requests上傳文件,咱們在代碼同級目錄建立report.xml,輸入以下代碼:
import requests url = 'http://httpbin.org/post' files = {'file': open('report.xls', 'rb')} r = requests.post(url, files=files) print(r.text)
建立格式以下代碼所示:
requests.put('http://httpbin.org/put', data = {'key':'value'}) requests.delete('http://httpbin.org/delete') requests.head('http://httpbin.org/get') requests.options('http://httpbin.org/get')
小結:PUT、DELETE、HEAD、OPTIONS四個請求中,筆者只用過PUT、DELETE,使用方法也比較簡單,這裏一樣不作過多介紹,在本章中,咱們介紹瞭如何在Windows下安裝requests,如何構造GET、HEAD、POST、PUT、DELETE、OPTIONS請求,這6種請求中,重點介紹了GET、POST請求方法,這2種方法在接口測試中也是最經常使用的請求方法,但願讀者能夠詳細閱讀requests中文網站。
歡迎關注微信公衆號:軟件測試汪。軟件測試交流羣:809111560