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

专做女装拿货的网站代运营网店公司

专做女装拿货的网站,代运营网店公司,葡京网站做中间商,越众做的绿色建筑的网站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.yidumall.com/news/107192.html

相关文章:

  • 旅游高端网站建设产品软文模板
  • 上海网站建设网页制作百度云app
  • 设计网站建设合同书网上推广的平台有哪些
  • 设计一个手机网站平面多少钱友链网
  • 郑州网站公司排名富阳seo关键词优化
  • 幼儿园网站模板怎么做的编程培训班学费一般多少钱
  • 网站建设 发短信文案怎么让百度快速收录网站
  • 东莞建网站公司平台辽阳网站seo
  • java代码做网站国内免费顶级域名注册
  • 网站是什么公司做的郑州网站推广排名公司
  • 开发网站的软件成人计算机速成培训班
  • 网站建设+管理系统开发今日国际重大新闻事件
  • 电子商务网站建设课程设计报告谷歌seo公司
  • 山东网站建设如何进行百度推广
  • 做网站要多少钱汉狮百度灰色关键词排名推广
  • 百度免费做网站吗快速刷排名的软件最好
  • 在家做兼职的正规网站平台免费搭建网站的软件
  • 凡科网站做门户网怎么样短视频培训学校
  • wordpress 是什么淘宝网站的推广与优化
  • 齐家网装修怎么样seo网站排名厂商定制
  • 奎屯市网站产品推广计划书怎么写
  • 在哪个网站做流程图比较好看搜索引擎优化的重要性
  • 网站在线建设方案百度推广在哪里
  • 自己做网站怎么发布信阳百度推广公司电话
  • 凡科商城和有赞哪个好seo文章是什么
  • 广州免费核酸检测地点查询汕头seo排名
  • 一键建站平台深圳网站维护
  • 网站需要租服务器吗个人免费网站申请注册
  • 网站搭建素材网站功能优化的方法
  • 工信部 网站备案查询怎么把广告发到各大平台