python requests session_python requests.request 和session.request区别究竟在哪里

def request(method, url, **kwargs):

"""Constructs and sends a :class:`Request `.

:return: :class:`Response ` object

:rtype: requests.Response

Usage::

>>> import requests

>>> req = requests.request('GET', 'https://httpbin.org/get')

"""

# By using the 'with' statement we are sure the session is closed, thus we

# avoid leaving sockets open which can trigger a ResourceWarning in some

# cases, and look like a memory leak in others.

with sessions.Session() as session:

return session.request(method=method, url=url, **kwargs)

request.request 源码有一段这样的解释使用了with上下文管理,来确保session被关闭,因此我们可以避免残留socket打开的连接导致的触发资源紧张警告在某些情况下,并且还可以防止内存泄漏在另一方面。

再session.request

在最下面还为我们封装了一层session实例对象,但是它在不久的将来会过期,做了一个上下文管理器作用:

所以你可以通过两种方法区调用request库的session:

import requests

#method1

new_session=requests.session()

new_session.request()

# method2

from requests import Session

Session().request()

可以从源码对比request.request是基于上下文管理器做的自动关闭session,而session.request基于http长连接sokcet,保留历史请求的状态,这就对依赖于登陆状态的二次请求提供了很便利的途径,居于token,可以借助python reflect也就是反射实现token读取,共享

技术群:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值