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')

 

posted @ 2021-06-19 00:05  重走青春LV  阅读(2192)  评论(0编辑  收藏  举报