接口自动化:三.get ,post请求
request安装
1.cmd+R打开cmd输入,安装之前先关掉fiddler:
>pip install requests
卸载是:pip uninstall requests
查看全部是:pip list
查看包是:pip show requests
requests模块
Requests: HTTP for Humans
python2.X 有这些库名可用: urllib, urllib2, urllib3, httplib, httplib2, requests
python3.X 有这些库名可用: urllib, urllib3, httplib2, requests
两者都有的urllib3和requests, 它们不是标准库.
urllib3 提供线程安全连接池和文件post支持,与urllib及urllib2的关系不大. requests 自称HTTP for Humans, 使用更简洁方便
Requests模块文档介绍:
http://cn.python-requests.org/zh_CN/latest/
Get,post请求
接口测试离不开接口文档,python写代码发送请求
第一种是一个纯url地址,没问号,也没问号后面的参数
第二种是带问号和参数的,传参params
发post请求,只需要修改一下请求方式,传参data
传参有中文值,需要编码
发送请求前会按照urlencode进行编码。
请求成功后,返回.text格式
.json返回的是字典类型的数据
.text返回的是字符串类型数据
Get请求参数和url拼接到一起一起传递
Post请求参数可以和url拼接到一起传递,也可以通过body传递
说明请求参数是通过body传递
3.返回html页面(模拟浏览器打开html页面)
返回json格式是错误的
返回结果
1.response的返回内容还有其它更多信息
-- r.status_code #响应状态码
-- r.content #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
-- r.headers #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
-- r.json() #Requests中内置的JSON解码器 ,json转成python的字典了
-- r.url # 获取url
-- r.encoding # 编码格式
-- r.cookies # 获取返回的cookie
-- r.text #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
-- r.raise_for_status() #失败请求(非200响应)抛出异常
--r.headers[content-type]#获取响应体header中的相应数据格式。
--r.content.decode(‘utf-8’)返回html中文乱码,需要进行编码