23. requests安裝與使用

Windows下安裝requests

在介紹requests庫以前,先貼一下requests官網,固然也能夠訪問requests中文網站python

requests官網給出如下介紹:Requests 惟一的一個非轉基因的 Python HTTP 庫,人類能夠安全享用。但同時也給出了警告:非專業使用其餘 HTTP 庫會致使危險的反作用,包括:安全缺陷症、冗餘代碼症、從新發明輪子症、啃文檔症、抑鬱、頭疼、甚至死亡。看吧,這就是 Requests 的威力!git

由於咱們安裝的版本是Python3.6.6,因此在安裝過程當中已經默認幫咱們安裝好了pip,咱們能夠打開cmd窗口,輸入pip install requestsgithub

requests實例

網絡基礎中,咱們介紹到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請求

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請求

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)

PUT、DELETE、HEAD、OPTIONS請求

建立格式以下代碼所示:

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

相關文章
相關標籤/搜索