requests模块,Seesion关联及通过变量实现接口关联

 

 博主主页: 码农派大星.

    数据结构专栏:Java数据结构

 数据库专栏:数据库

JavaEE专栏:JavaEE

软件测试专栏:软件测试

关注博主带你了解更多知识

1. 回顾Http协议

请求:

请求行:  请求方式, 请求路径,协议

请求头:

Content-Type: 客户端发送的数据格式

application/x-www-form-urlencoded 表单

application/json json数据

multipart/form-data  文件上传

application/octreent-stream  二进制文件上传

Accept:声明客户端可接收的数据格式

X-Requested-With:标识异步请求

User-Agent:客户端类型信息

Cookie:会话状态信息

响应: 

响应行 :  状态码 状态信息

响应头

响应正文: 响应数据

2. requests库

发送请求三种方式

1. requests.请求方式(参数)

包括requests.get()、requests.post()、requests.put()、requests.delete()

提示: 第一种方式底层就是调用了第二种请求方式

例如: 

2. requests.request(method, url, ​**​kwargs)

参数说明:

method: 指定HTTP方法(GET/POST/PUT/DELETE等)

**kwargs: 其他可选参数

url: 请求的目标URL

提示: 第二种请求方式,底层就是调用第三种请求方式

3. requests.session().request()

⽅法形式:

先创建会话对象:session = requests.Session()

再发送请求:session.request(method, url, **kwargs)

可以自动处理有cookie关联的接口,前面两种都是单独请求(类似jmeter的http cookie管理器)

请求参数详解 

params传参

在接⼝路径后以?传递,多个参数⽤&分隔

对参数内容进⾏urlencode编码(内容以ASCII⽅式呈现

data传参: form表单

表单参数,请求头为Content-Type: multipart/form-data

主要⽤于POST请求的表单提交

json传参

特点JSON格式参数,请求头为Content-Type: application/json

unicode编码

​​​​​​​三种传参⽅式对⽐

​​​​​​​params传参: 查询字符串⽅式,数据直接附加在 URL 后面,适合GET请求,数据通过 URL 的查询字符串传递

​​​​​​​data传参: 表单⽅式,需要设置特定Content-Type

数据通过 HTTP 请求体(Body)传递

适合表单提交或文件上传,数据不在 URL 中显示

​​​​​​​json传参: 直接传递JSON格式数据

数据同样通过 HTTP 请求体(Body)传递

数据以 JSON 格式组织,适合复杂数据结构

​​​​​​​json传参与form表单传参的区别

请求头差异
  1. Form表单传参需要设置Content-Typeapplication/x-www-form-urlencoded
  2. Json传参需要设置Content-Typeapplication/json
 参数处理
  1. Form表单会对参数进⾏urlencode编码(内容以ASCII⽅式呈现
  2. Json传参会对中⽂字符进⾏unicode编码处理

files传参 

文件上传参数用于在接口请求中传输文件数据

请求头处理:自动添加Content-Type为multipart/form-data

表单构建:会构建表单数据并将文件内容以二进制形式加入请求体

 第一种方式:上传已存在的文件

使用open()函数以二进制模式("rb")打开文件

文件路径注意事项:

左斜杠"/"只需一个

右斜杠""需要两个(因为单个反斜杠是转义符) 

其他请求参数

  1. headers:请求头参数
  2. cookiesCookie信息
  3. auth:授权参数
  4. timeout:超时设置
  5. ​​​​​​​allow_redirects:是否允许重定向(默认True
  6. proxies:代理设置
  7. hooks:钩⼦函数
  8. stream:⽂件下载
  9. verify:证书验证
  10. certCA证书

response对象的属性和方法

 

 res = requests.post(url="http://82.157.143.27:8081/user/login")
       res.text        返回字符串类型的数据
       res.content     返回二进制类型的数据
       res.json()      把json字符串转化为字典格式返回
       res.status_code 状态码
       res.reason      状态信息
       res.cookies     cookie信息
       res.encoding    编码格式
       res.headers     响应头
       res.elapsed     耗时
       res.request.method  请求方式
       res.request.url     请求路径
       res.request.headers 请求头
       res.request.body    请求数据

 3. 接口请求实例演示:

使用 requests.Session() 来管理 HTTP 请求会话

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值