requests基础(二)-获取响应内容
响应包括响应行、响应头、响应正文,这些返回的响应信息都可以通过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')