前言:在Python的接口测试中,我们会遇到接口请求的情况,那么在请求的时候,我们应该去使用什么样的方式?什么样的库呢?今天就来认识下Requests库
一、安装Requests库
1、安装requests
pip install requests
二、什么是接口?
1、什么是接口:用来传输数据的通道
2、http请求的三要素:
1、请求地址
2、请求方法
3、请求数据
3、请求头Content-Type:字段取值:
1、application/x-www-form-urlencoded
格式:key1=2227092769&key2=123456&key3=0
2、application/json
格式:{key1:val1,key2:val2}
3、multipart/form-data
格式:上传文件或图片
4、text/xml【不常用】
格式:提交html格式的文件
例子解析:
https://www.ketangpai.com/#/main/classDetail?courseid=MDAwMDAwMDAwMLOGtZWGz6-yhdtyoQ&courserole=1&submodulename=0
拆解:
https://:协议
www.ketangpai.com:域名
/#/main/classDetail:接口地址
courseid=MDAwMDAwMDAwMLOGtZWGz6-yhdtyoQ&courserole=1&submodulename=0:参数
三、get请求
发一个get请求,会将请求参数自动拼接到接口地址后面
方法一:
data = {"key1":"val1","key2":"val2"}
res = requests.get(url="http://httpbin.org/get?key1=val1&key2=val2") #将参数拼接到url地址后
方法二:
data = {"key1":"val1","key2":"val2"}
res = requests.get(url="http://httpbin.org",params=data)#将参数传给params=data
四、post请求
例子1:
res = requests.post(url="http://httpbin.org/post",data=data)
data:默认使用{'Content-Type': 'application/x-www-form-urlencoded'}
如果设置了请求头的Content-Type,那么就按照设置的编码方法进行传参
例子2:
json:默认使用{'Content-Type': 'application/json'}
如果设置了请求头的Content-Type,那么就按照设置的编码方法进行传参
五、HTTP请求
例子1:
res = requests.post(url="http://httpbin.org/post",data=data,verify=False) #verify=False代表不验证HTTP的CA证书
五、get与post的区别
安全性:
1、get传参放在接口地址后面(浏览器地址后面),相对来说不那么安全
2、post请求数据藏起来的,放在请求体里面(body)
使用场景:
3、get请求一般用于获取数据
4、post请求用于提交数据
参数长度:
5、get请求一般参数有长度限制,后端服务器做的限制
6、post请求参数也有长度限制,后端服务器做的限制(post参数长度一般大于get)
幂等性:
7、幂等性:同一个接口,同一个参数请求N遍,返回结果都不会变
get请求都是幂等的
post请求一般是不幂等的(支付、注册、提现这类接口要做幂等处理)