Python第三方requests库adapters类详解(6/6)

requests.adapters.BaseAdapter类

BaseAdapter 类则是该库中用于处理请求和响应的适配器的基类。

用户可以继承该类并自定义自己的方法来覆写它。

1、close()

close() 方法主要用于清理或完成适配器相关的操作。

当一个 Session 对象被关闭或超出范围时,会自动调用已挂载适配器的 close() 方法。

2、send(request, stream=False, timeout=None, verify=True, cert=None, proxies=None)

send() 方法负责实际发送请求,并返回相应的响应对象。

可以根据需要在自定义适配器中覆盖该方法,以实现特定的请求发送逻辑。

参数:

request:PreparedRequest对象

stream: 如果为 True,则返回响应的内容不会立即下载。默认为 False。

timeout: 请求的超时时间,可以是一个数字或一个包含两个元素的元组(连接超时和读取超时)。

verify: 是否进行 SSL 证书验证。默认为 True。

cert: 客户端证书文件路径。可以是单个文件(包括密钥和证书)或包含两个文件路径的元组。

proxies: 代理配置。

示例:

from requests.adapters import BaseAdapter

class MyCustomAdapter(BaseAdapter):

    def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):

        # 实现自定义的请求发送逻辑

        # ...

# 使用自定义适配器的会话:

import requests

session = requests.Session()

session.mount('http://', MyCustomAdapter())

session.mount('https://', MyCustomAdapter())

# 发送请求

response = session.get('https://example.com')

# 处理响应

print(response.text)

# 注意:上述示例中的 MyCustomAdapter 类需要根据具体需求实现自定义的请求发送逻辑。

requests.adapters.HTTPAdapter(pool_connections=10, pool_maxsize=10, max_retries=0, pool_block=False)

requests.adapters.HTTPAdapter 类的作用在于提供了一个灵活的机制,允许用户创建和使用自己的传输适配器,实现自己需要的特殊功能,让用户能够更好地控制和管理 HTTP 和 HTTPS 请求的发送,并能够实现一些特殊的交互功能。

urllib3的内置HTTP适配器。

通过实现传输适配器接口,为请求会话提供通用情况接口,以联系HTTP和HTTPS url。这个类通常由Session类在后台创建。

参数:

- pool_connections: 连接池的最大连接数。

- pool_maxsize: 每个主机的最大连接数。

- max_retries: 最大重试次数,设置为 0 表示禁用重试。

- pool_block: 如果连接池达到最大大小并且所有连接都在使用,则是否阻塞请求。默认为 False。

用法:

>>> import requests

>>> s = requests.Session()

>>> a = requests.adapters.HTTPAdapter(max_retries=3)

>>> s.mount('http://', a)

1、add_headers(request, **kwargs)

用于向 HTTP 请求中添加自定义头部信息的函数。

添加任何连接需要的头部信息。从v2.0开始,默认情况下这不会做任何事情,但用户可以通过子类化HTTPAdapter来覆盖它。

不应从用户代码中调用此方法,只有在子类化HTTPAdapter时才暴露出来。

参数

request:一个 requests.Request 对象,表示要发送的 HTTP 请求。

**kwargs:一个可变关键字参数字典,其中包含要添加到请求头部的信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值