Requests库介绍
1.使用python语言编写
2.使用开源协议,基于urllib库做的二次封装
3.Requests库中封装了相应接口测试方法
Requests库是用Python编写的,基于urllib,采用Apache2 Licensed开源协议的HTTP库;
相比urllib库,Requests库更加方便,可以节约我们大量的工作,完全满足HTTP测试需求
Requests库安装及验证
安装:pip install requests
验证:pip show requests -->显示相应的版本信息
发送请求
常见的HTTP请求方式:GET、POST、PUT、DELETE、HEAD、OPTIONS
使用requests发送网络请求非常简单,只需要调用HTTP请求类型所对应的方法即可。
GET请求
import requests
response = requests.get(‘https://www.baidu.com/‘)
请求方法的返回值response为Response对象,我们可以从这个对象中获取所有我们想要的响应信息。
‘‘‘ 目标:Get请求方法带参演练 案例: 1.https://www.baidu.com?id=1001 2.https://www.baidu.com?id=1001,1002 3.https://www.baidu.com?id=1001&kw=北京 请求: 1.请求方法:GET 参数: params:字典或字符串(推荐使用字典) 响应: 1.响应对象.url #获取请求url 2.响应对象.status_code #获取响应状态码 3.响应对象.text #以文本形式显示响应内容 ‘‘‘ # 1.导包 import requests # 2.调用get url=‘https://www.baidu.com‘ # 案例1 定义字典 # params={"id":1001} # 案例1 字符串形式编写,不推荐 # r=requests.get(url,params="id=1001") # 案例2 # params={"id":"1001,1002"} # %2C ASCI值为逗号 # 案例3 params={"id":1001,"kw":"北京"} # 多个键值使用方式 # 请求是带参 params r=requests.get(url,params=params) # r为响应数据对象 # 3.获取请求url地址 print("请求url:",r.url) # 4.获取响应状态码 print("状态码:",r.status_code) # 5.获取响应信息 print("响应信息:",r.text)
POST请求
作用:新增资源
response = requests.post(url,data=None,json=None)
url:请求的URL
data:(可选)要发送到请求体的字典、元组、字节或文件对象
json:(可选)要发送到请求体的JSON数据
import requests
response = requests.post("https://www.baidu.com/",data={"key":"value"})
扩展:
data与json的区别
响应数据json()与text区别
PUT请求
作用:更新资源
应用:
参数:参考post方法参数
响应:
import requests
response = requests.put("https://www.baidu.com/",data={"key":"value"})
DELETE请求
作用:删除资源
应用:
响应:
import requests
response = requests.delete("https://www.baidu.com/")
HEAD、OPTIONS
import requests
response = requests.head("https://www.baidu.com/")
response = requests.options("https://www.baidu.com/")
响应内容
response.status_code 获取响应状态码
response.url 获取请求url地址
response.encoding 查看响应头部字符编码
response.headers 头信息
response.cookies cookie信息
response.text 文本形式的响应内容
response.content 字节形式的响应内容
response.json() JSON形式的响应内容
‘‘‘ 目标:响应对象常用方法 1.encoding 1)获取请求编码 2)设置相应编码 2.headers 1)获取响应信息头信息 案例:https://www.baidu.com ‘‘‘ import requests url = ‘https://www.baidu.com‘ r = requests.get(url) # 查看默认请求编码(不指定响应编码时,用的就是请求编码) ISO-8859-1 这个时候响应信息汉字是乱码 print(r.encoding) # 设置响应编码 r.encoding = "utf-8" # 查看响应内容 print(r.text) # 查看响应信息头 print(r.headers)
‘‘‘ 目标:响应对象常用方法 1.cookies 1)获取响应cookies信息 2.content 1)以字节码形式获取响应信息(图片、视频..多媒体格式) 案例: cookies:https://www.baidu.com content:https://www.baidu.com/img/bd_logo1.png?where=super ‘‘‘ import requests # url = ‘https://www.baidu.com‘ # r = requests.get(url) # # 获取响应cookies 返回字典对象 # print("cookies信息为",r.cookies) # # 通过键名获取响应的cookies值 # print("cookies信息为",r.cookies[‘BDORZ‘]) url_img = ‘https://www.baidu.com/img/bd_logo1.png?where=super‘ r = requests.get(url_img) # 以text文本形式解析图片 --->乱码 # print(r.text) # 以字节码形式解析图片 print(r.content) # 将图片写入当前目录baidu.png with open("./baidu.png","wb") as f: f.write(r.content)
完
原文:https://www.cnblogs.com/peiya/p/12912805.html