session对象和requests两种方法发送的请求的区别

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

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

session = requests.session()  # 创建session对象
# 得到session对象之后,就可以调用该对象中方法来发送请求了。
response1 = session.get(url,params,headers)
response2 = session.post(url,data,json,headers)
import requests
response1 = requests.get(url,params,headers,cookies) # 发送get网络请求
response2 = requests.post(url,data,json,headers,cookies) # 发送post网络请求

二、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()

import requests
# 获取 session对象
session = requests.session()
# 登陆接口
response1 = session.get(url_login,params,headers)
# 请求 查询接口
response2 = session.get(search_activity_url,params,headers)
# 查看查询响应的结果
response2.json()

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
复杂的requests请求通常包含以下几个方面: 1. 请求方法requests请求通常使用GET和POST两种方法,但有时候需要使用其他方法,比如PUT、DELETE等。在使用requests发送请求时,需要指定请求方法。 2. 请求头:请求头是发送请求时附加在请求中的一些信息,包括User-Agent、Accept-Encoding、Content-Type、Cookie等。这些信息可以通过headers参数传递给requests。 3. 请求体:请求体包含了请求中需要传递的数据,比如表单数据、JSON数据、文件等。请求体可以通过data、json、files等参数传递给requests。 4. 请求参数:有时候需要在URL中传递一些参数,比如查询字符串、路径参数等。这些参数可以通过params、path等参数传递给requests。 5. 会话管理:请求可能需要使用会话来管理会话状态,比如发送多个请求时需要使用同一个会话。这可以通过Session对象实现。 6. 认证和授权:有些请求需要进行认证和授权才能访问,比如OAuth认证、HTTP基本认证等。这可以通过auth和headers参数实现。 7. SSL验证:有些请求需要进行SSL验证才能访问,比如HTTPS请求。这可以通过verify参数实现。 8. 重定向:有些请求会被重定向到其他页面,需要对重定向进行处理。这可以通过allow_redirects参数实现。 综上所述,复杂的requests请求需要考虑多个方面,包括请求方法请求头、请求体、请求参数、会话管理、认证和授权、SSL验证、重定向等。需要根据具体的需求进行参数配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值