为了实现接口自动化,进入了解第二个主要的部分,即发送http请求。
介绍
requests模块可以用来发送get、put、post以及delete请求。
作为python的第三方库,首先需要安装
pip3 install requests
requests模块具体使用
- 引入模块
import requests
- 发送get请求
没有参数即直接传递url参数,如果有参数,在params参数中可以传入一个dict,在headers参数中传入必要的headers值。
result=requests.get('https://www.123.com',params={"a":"b"},headers={"content-type":"application/json"})
- 发送post/put/delete请求
没有参数即直接传递url参数,如果有参数,在data参数中可以传入一个dict,在headers参数中传入必要的headers值。。
result=requests.post('https://www.123.com',data={"a":"b"})
在上述代码中,发现请求报错:The browser (or proxy) sent a request that this server could not understand,解决方法是传递headers,并将data传入的格式用json.dumps进行处理。
result=requests.post('https://www.123.com',data=json.dumps({"a":"b"}),headers={"content-type":"application/json"})
另在后续读取excel的用例中,data中的数据存在中文,需要应用encode()进行编码,即传入data参数时,data=data.encode()
应用json方便的读取结果
为了更好的展现请求的response,便于查看,可以应用json进行格式化转换。
- .json()
将响应转化为json
result=requests.get('https://www.123.com',params={"a":"b"}).json()
- json函数
json.dumps():将Python对象编码成JSON字符串
regular_result=json.dumps(result,ensure_ascii=False,sort_keys=True,indent=2)
#ensure_ascil=False:输出正确的中文
#sort_keys:排序,a-z
#indent:格式美化,按数据格式进行缩进,数字代表空格数
json.loads()将JSON字符串解码成Python对象
py_result=json.loads()
自我记录,有错误欢迎指正~