You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Requests库中'hooks'的定义及作用是什么?

Python Requests库中hooks的定义、作用及用法解析

一、hooks的定义与作用

  • 定义:Requests库的hooks是一套回调触发机制,能让你在请求生命周期的特定节点(比如拿到响应后)自动执行自定义函数,不用改动核心请求代码。
  • 作用:灵活扩展请求处理逻辑,比如自动打印响应日志、修改返回的响应内容、实现请求失败重试、统计请求耗时等场景都能用得上。

二、代码示例逐行解析

先看完整代码:

import requests

def func(get_requests, *a, **b):
    print(get_requests.status_code)
    print(get_requests.text)
    
hooks = {'response':func}    
get_requests = requests.get('https://httpbin.org/get', hooks=hooks)

1. 自定义回调函数func

  • 这个函数是我们要在响应阶段执行的逻辑,第一个参数必须是对应的响应对象(这里get_requests就是请求返回的Response实例),后面的*a, **b是用来兼容Requests内部可能传递的额外参数,避免因参数不匹配报错。
  • 函数里的逻辑很直接:打印响应的状态码,再打印响应的文本内容。

2. 构造hooks配置字典

  • hooks = {'response':func}:这里指定了钩子的触发时机和对应执行的函数。'response'是Requests预定义的触发点,代表请求完成并拿到响应后这个时刻,值就是我们写的自定义函数func。

3. 发起请求并绑定hooks

  • 调用requests.get时,通过hooks参数把我们的钩子配置传进去。当请求成功拿到响应后,Requests会自动触发func函数,把响应对象作为参数传进去执行我们的自定义逻辑。

实际运行效果

运行这段代码后,会先输出200(httpbin返回的成功状态码),接着输出httpbin返回的包含请求信息的JSON文本,最后才会把响应对象赋值给get_requests变量。

内容的提问来源于stack exchange,提问作者user19944660

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:31:22