響應包括響應行、響應頭、響應正文,這些返回的響應信息都可以通過Request模塊獲取。這些獲取到的響應內容也是接口測試執行得到的實際結果。
獲取響信息
#requests獲取響應信息
import requests response=requests.get('https://www.taobao.com/',stream=True) #獲取響應行
print(response.status_code)#響應狀態碼
print(response.reason)#響應信息
# 響應頭
print(response.headers.get('Content-Type'))#返回的是字典類型,可以繼續使用get獲取指定的值
#獲取其他相應信息
print(response.url)#獲取請求地址
print(response.cookies)#獲取cookies
print(response.encoding)#獲取響應的編碼格式
響應正文
依據不同格式的響應正文情況,requests模塊有四種不同的處理方式
# 方式一:普通響應內容,使用response.encoding改變編碼,防止亂碼出現
response=requests.get('https://www.taobao.com/') response.encoding='utf-8'
print(response.text) #方式二:返回二進制響應內容
response=requests.get('https://www.taobao.com/') print(response.content.decode('utf-8')) #方式三:json響應內容 json()方法會返回一個json對象
get_param_data={ "grant_type":"client_credential", "appid":"wx93fc8716b3795e90", "secret":"1ff879affa4d6c7cddc27b2e99406990" } response=requests.get('https://api.weixin.qq.com/cgi-bin/token',get_param_data) print(response.json()['access_token']) #方式四:原始響應內容 請求地址后加 stream=True 一般不使用這個
response=requests.get('https://www.taobao.com/',stream=True) print(response.raw.read(1000))
#擴展 #response.content下載圖片
from PIL import Image from io import BytesIO url='https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png' response=requests.get(url) img=Image.open(BytesIO(response.content)) img.save('test.png')