Python requests库中requests.get("url").raise_for_status()作用是什么
requests.Response.raise_for_status() 方法说明
核心作用
raise_for_status()是requests库中Response对象的内置校验方法,用来自动识别请求的HTTP错误状态并抛出对应异常,避免开发者手动编写if判断区分状态码是否正常。
执行逻辑
- 首先读取当前请求返回的
status_code(HTTP状态码) - 若状态码为4xx客户端错误(如404资源不存在、403权限不足)或5xx服务端错误(如500服务内部错误、502网关错误),会立刻抛出
requests.exceptions.HTTPError类型的异常,异常信息附带具体状态码和官方错误描述 - 若状态码为1xx(信息类响应)、2xx(成功类响应)、3xx(重定向类响应),方法不做任何操作,代码正常向下执行
对应示例代码逻辑说明
完整示例代码如下:
import requests from requests.exceptions import HTTPError url = 'https://httpbin.org/' try: response = requests.get(url) # 发起GET请求拉取指定URL的资源 print(response.status_code) # 打印请求返回的HTTP状态码 response.raise_for_status() # 触发状态码校验,有错误会直接在此处抛出异常 except HTTPError as http_err: # 专门捕获raise_for_status()抛出的HTTP类异常 print(f'HTTP error occurred: {http_err}') except Exception as err: # Exception是所有Python异常的基类,这里用来捕获其他类型的异常,比如网络不通、域名解析失败等 print(f'Other error occurred: {err}') else: # 没有触发任何异常时才会进入该分支,代表请求完全成功 print('Success!')
内容的提问来源于stack exchange,提问作者Rohan Srivastwa
相关产品推荐
相关产品推荐

