Python HTTP状态码处理:从200到500的完整指南

144 阅读2分钟

huake_00193_.jpg在Python中处理HTTP状态码是Web开发中不可或缺的一部分,它能够帮助开发者快速判断请求结果并采取相应措施。以下是使用requests库处理HTTP状态码的完整指南,涵盖常见状态码及其处理策略。

状态码分类及常见代码****

HTTP状态码由三位数字组成,根据首位数字可分为五类:

· 2xx(成功) :如200 OK表示请求成功,204 No Content表示请求成功但无内容返回。

· 3xx(重定向) :如301 Moved Permanently表示资源永久重定向,302 Found表示临时重定向。

· 4xx(客户端错误) :如400 Bad Request表示请求有误,404 Not Found表示资源未找到。

· 5xx(服务器错误) :如500 Internal Server Error表示服务器内部错误,503 Service Unavailable表示服务器暂时不可用。

使用 requests 库处理状态码****

1. 

获取状态码
使用requests.get()等方法发送请求后,通过response.status_code属性获取状态码。例如:

2. 

3. 

python复制代码

4. 

5. 

 import requests
 response = requests.get('jsonplaceholder.typicode.com/posts')
 print(response.status_code)

6. 

7. 

基于状态码的处理逻辑
通过条件语句判断状态码并执行相应操作:

8. 

9. 

python复制代码

10. 

11. 

 if response.status_code == 200:
 print("请求成功")
 data = response.json() # 处理数据
 elif response.status_code == 404:
 print("资源未找到")
 else:
 print(f"发生错误: {response.status_code}")

12. 

13. 

异常处理
使用try-except块捕获网络异常,例如超时或连接失败:

14. 

15. 

python复制代码

16. 

17. 

 try:
 response = requests.get('example.com', timeout=5)
 response.raise_for_status() # 非200状态码抛出异常
 except requests.exceptions.Timeout:
 print("请求超时")
 except requests.exceptions.ConnectionError:
 print("连接错误")
 except requests.exceptions.HTTPError as err:
 print(f"HTTP错误: {err}")

18. 

状态码处理策略****

· 2xx:直接处理响应内容,如解析JSON或保存文件。

· 3xx:根据需求处理重定向(requests默认自动处理)。

· 4xx:检查请求URL、参数或权限,例如404时提示用户资源不存在。

· 5xx:记录日志并通知管理员,或尝试重试请求。

通过结合状态码与异常处理,可以显著提升程序的健壮性和用户体验。开发者应根据具体业务需求,灵活设计状态码处理逻辑,确保系统在各种网络条件下稳定运行。