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

在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库处理状态码

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

python复制代码

import requests

response = requests.get('https://jsonplaceholder.typicode.com/posts')

print(response.status_code)

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

python复制代码

if response.status_code == 200:

print("请求成功")

data = response.json() # 处理数据

elif response.status_code == 404:

print("资源未找到")

else:

print(f"发生错误: {response.status_code}")

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

python复制代码

try:

response = requests.get('https://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}")

状态码处理策略

  • 2xx:直接处理响应内容,如解析JSON或保存文件。
  • 3xx:根据需求处理重定向(requests默认自动处理)。
  • 4xx:检查请求URL、参数或权限,例如404时提示用户资源不存在。
  • 5xx:记录日志并通知管理员,或尝试重试请求。

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

猜你喜欢

转载自blog.csdn.net/weixin_73725158/article/details/147085134