当前位置: 首页 > news >正文

济南教育论坛网站建设重庆seo代理计费

济南教育论坛网站建设,重庆seo代理计费,做模式网站,一个完整的网站制作需要哪些部分组成requests库是用来发送请求的库,本篇用来讲解requests库的基本使用。 1.安装requests库 pip install requests 2.requests库底层方法的调用逻辑 (1)get / post / put / delete 四种方法底层调用 request方法 注意:data和json都…

requests库是用来发送请求的库,本篇用来讲解requests库的基本使用。

1.安装requests库

pip install requests

2.requests库底层方法的调用逻辑

(1)get / post / put / delete 四种方法底层调用 request方法
在这里插入图片描述
注意:data和json都可以作为Post请求的参数,但是使用时机不同。当传参是json类型时,使用json,当传参是文件时使用files,其他时候使用data。

(2)request方法底层调用session.request方法
在这里插入图片描述

(3)因为get / post / put / delete 四种方法不能对有cookie关联的接口进行自动关联,而session.request方法可以进行自动管理,所以常用session.request方法发送请求。


3.session.request方法的参数,常用的有:


参数说明
method请求方法
url请求路径
params=Noneget请求传参
data=Nonepost或put请求传参
json=Nonepost请求传参
headers=None请求头
cookies=NoneCookie
files=None文件上传

4.接收响应

session.request方法发送请求后会返回响应,接收响应时需要根据响应的类型来接收:

接收方式说明
res.text返回文本信息
res.json()返回json格式
res.content返回的字节内容
res.status_code返回的状态码
res.reason返回的状态信息
res.cookies返回的coolie
res.encoding返回的编码格式
res.headers返回的响应头

5.接口关联

当后一个接口的参数需要从前一个接口的响应数据中获取时,就需要进行接口关联。

实现接口关联有三种方式:

  1. 通过类变量保存中间变量
  2. 通过单独文件保存中间变量
  3. 极限封装成工具一样,只需要通过表达式

首先说明如何通过类变量保存中间变量?
只需要从前一个接口中提取到变量设置为类变量,就可以通过类名在第二个接口中调用了。

class Testapi:access_token = ""

而从响应中提取变量有两种方式:

  1. 正则表达式提取(适用于提取文本结果)
  2. JsonPath提取 (适用于提取json结果)

正则表达式提取变量的方法有两种:

  • re.search() 提取单个值,通过下标取值
  • re.findall() 提取多个值,通过下标取值

re.search(表达式,对象)

result = res.text
Testapi.access_token = re.search('xxx(.*?)xxx',result).group(1)

JsonPath提取变量只有一个方法:
jsonpath.jsonpath(对象,表达式)

result = res.json()
value = jsonpath.jsonpath(result,”$.access_token”)

jsonPath表达式规则:

规则解释
$根节点
.子节点
递归取子节点
[]代表取列表中的值,下标从0开始

6.统一的请求封装

请求四要素:请求方法、请求路径、请求参数、请求头
响应四要素:响应码、响应信息、响应内容、响应头

所有请求的发送都是组织请求四要素然后发送,这种相同类型的操作可以进行统一的封装,减少冗余代码,同时可以对请求进行统一管理,如统一异常处理,统一日志监控。

在统一封装请求时,可以直接将参数传递给session.request()方法的可变长度参数,就不需要考虑参数的类型了。

# 封装
class RequestUtils:sess = requests.session();# 统一发送请求def all_send_request(self,**kwargs):res = RequestUtils.sess.request(**kwargs)print(kwargs["method"])#获取请求方式return res
class Testapi:# 调用def test_file_upload(self):url=""datas={"meida":open("E:\\111.png","rb")} # 文件的字节流res = RequestUtils().all_send_request(method="post",url=url,files=datas)

封装之后会发现第一种通过类变量保存中间变量,在跨文件使用时会导致用例出错。

为了解决这个问题,我们可以使用第二种方法:通过单独的文件保存中间变量,来实现接口关联。

http://www.hkea.cn/news/360912/

相关文章:

  • 为女朋友做的表白网站百度大数据分析工具
  • 上海高端网站建设服务公seo推广公司
  • 找人合伙做网站平台仿站定制模板建站
  • 深圳市网站建设科技公司腾讯网网站网址
  • wordpress语言文件夹seo销售好做吗
  • 河北建设集团官网西安网站seo
  • 在外汇局网站做登记报告恢复原来的百度
  • 做外贸做的很好的网站全国疫情突然又严重了
  • 开发app需要什么样的团队百度seo优化培训
  • ftp上传网站之后软文什么意思范例
  • 询广西南宁网站运营推广系统
  • wordpress侧边栏小工具佛山网站优化
  • 用vs做网站原型企业培训课程有哪些内容
  • wordpress评论自定义百度刷排名seo
  • 四川建设网官网登录入口泉州seo外包
  • 网站有备案 去掉备案网络营销意思
  • 新建网站推广给企业百度问一问在线咨询客服
  • 曹鹏wordpress建站seo视频广东疫情防控措施
  • 网站开发的岗位排名优化工具
  • 岳阳做网站怎么做推广让别人主动加我
  • 不断改进网站建设公司百度官网优化
  • 万户网站宁波网站制作优化服务
  • 潍坊快速网站排名网站是怎么做出来的
  • 聚美优品的pc网站建设注册网址
  • 陕西省住房与城乡建设厅网站免费b站推广软件
  • 淮南市住房与城乡建设部网站网店买卖有哪些平台
  • 网页qq表情佛山百度快速排名优化
  • 网站建设方案论文1500社会新闻最新消息
  • 网站组建 需求分析市场监督管理局职责
  • 云课堂哪个网站做的好厦门关键词优化seo