requests.session()发送请求 和使用requests直接发送请求的区别

requests.session()发送请求 和使用requests直接发送请求的区别

requests.session()发送请求 和使用requests直接发送请求的区别
一、Session

在requests里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。

会话能让我们在跨请求的时候保持某些参数,比如在同一个session实例发出的所有请求之间保持cookie信息。
1、创建session对象

session = requests.session()

1

得到session对象之后,就可以调用该对象中方法来发送请求了。

response1 = session.get(url,params,headers)
response2 = session.post(url,data,json,headers)

1
2

通过session来发送get、post、delete、put等请求并获取响应。
二、requests

requests是Python的一个第三方的库,主要用于发送网络请求,比如get、post等请求已达到获取网络响应的目的

语法如下:

import requests
response1 = requests.get(url,params,headers,cookies) # 发送get网络请求
response2 = requests.post(url,data,json,headers,cookies) # 发送post网络请求

put、delete等请求方法类似

1
2
3
4

三、session对象和requests两种方法发送的请求的区别:
1、场景

登陆某商城
查询我的订单数据

2、业务代码分析

首先这里涉及到两个接口,一个“登陆接口”,另外一个是“查询订单”的接口。
常规操作是我们 通过调用登陆接口 来获取响应的 cookie信息。
然后拿这个 cookie信息作为下一次请求的参数(cookie带有当前登陆人的信息)来请求 查询订单的接口

常规代码如下:

以下代码纯为了举例,没有效果的伪代码

import requests

登陆接口

response1 = requests.get(url_login,params,headers)

获取cookies信息

cookies = response.cookies

得到的cookies 是一个字典类型

cookie = cookies.get(“cookies的key”)

请求 查询接口

response2 = requests.get(search_url,params,headers,cookies=cookie)

查看查询响应的结果

response2.json()

1
2
3
4
5
6
7
8
9
10
11
12

使用session代码如下:

以下代码纯为了举例,没有效果的伪代码

import requests

获取 session对象

session = requests.session()

登陆接口

response1 = session.get(url_login,params,headers)

请求 查询接口

response2 = session.get(search_url,params,headers)

查看查询响应的结果

response2.json()

1
2
3
4
5
6
7
8
9
10

区别:

通过代码的对比可发现使用session对象效率会更好,不用每次都将cookie信息放到请求内容中了
session对象能够自动获取到cookie并且可以在下一次请求红自动带上我们所得到的的cookie信息,不用人为的去填写

补充知识点:
可以从请求方法的返回值response中可以获取的内容:

response.status_code 状态码
response.url 请求url
response.encoding 查看响应头部字符编码
response.cookies cookie信息
response.headers 头信息
response.text 文本形式的响应内容
response.content 二进制字节形式的响应内容
response.json() JSON形式的响应内容(其实就是dict字典类型)
————————————————
版权声明:本文为CSDN博主「6先生6」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_25986923/article/details/105332640

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值