Hooks即钩子方法,用于在某个框架固定的某个流程执行是捎带执行(钩上)某个自定义的方法。
requests库只支持一个response的钩子,即在响应返回时可以捎带执行我们自定义的某些方法。可以用于打印一些信息,做一些响应检查或想响应对象中添加额外的信息。

示例如下:

import requests
url = 'https://httpbin.org/post'

def verify_res(res, *args, **kwargs):
    print('url', res.url)
    res.status='PASS' if res.status_code == 200 else 'FAIL'

res = requests.get(url, data=data, hooks={'response': verify_res})
print(res.status)
#FAIL

verfiy_res是我们自定义的方法,第一个参数为响应对象,后面kwargs里是请求的一些配置。钩子方法不能返回响应对象以外的有意义值,否则会破坏后面对响应对象的处理。

由于该接口只支持post请求,使用get请求时响应状态码为405(请求方法不被允许),因此响应对象被添加的status的值为FAIL。

来源:那你多喝点水