如何处理`requests`返回的异常情况?
时间: 2024-11-04 21:12:03 浏览: 22
在使用`requests`库时,可能会遇到各种网络错误、服务器错误或其他意想不到的情况,这时通常需要对`response`对象的状态码进行检查。`requests`库的`get`、`post`等方法会返回一个`Response`对象,该对象有`status_code`属性表示HTTP状态码。
处理异常的基本步骤如下:
1. 检查`status_code`是否正常:
```python
try:
response = requests.get('http://example.com')
if response.status_code == 200: # 成功请求,200是标准的成功状态码
data = response.json() # 处理响应数据
else:
print(f"请求失败,状态码:{response.status_code}")
except requests.exceptions.RequestException as e:
print("请求过程中发生错误:", str(e))
```
2. 使用`except`捕获特定类型的异常,如连接超时、解析错误等:
```python
try:
response = requests.get('http://example.com', timeout=5) # 设置超时限制
except requests.exceptions.Timeout:
print("请求超时")
except requests.exceptions.ConnectionError:
print("连接错误")
except requests.exceptions.HTTPError as http_err:
print(f"HTTP错误: {http_err}")
```
阅读全文