调用Python REST API的核心是使用requests库发送HTTP请求并妥善处理参数、响应与错误;需安装requests,用params传URL参数、json传JSON数据、data传表单,设headers认证,检查status_code和raise_for_status(),捕获JSON解析异常,设置timeout,敏感信息从环境变量读取,并推荐封装带Session的客户端类。

调用 Python 中的 REST API,核心是用 requests 库发送 HTTP 请求,正确处理请求参数、响应数据和常见错误。
准备环境与基础请求
确保已安装 requests:运行 pip install requests。最简 GET 请求示例如下:
- 导入库:
import requests - 发起请求:
response = requests.get("https://httpbin.org/get") - 检查状态:
if response.status_code == 200:再处理数据 - 获取 JSON 响应:
data = response.json()(前提是返回的是合法 JSON)
传参方式要匹配接口要求
不同参数位置对应不同 HTTP 习惯,不能混用:
-
URL 参数(query string):用
params字典,如requests.get(url, params={"page": 1, "limit": 10})→ 自动拼成?page=1&limit=10 -
请求体(JSON):POST/PUT 时常用,用
json=参数(自动序列化 + 设Content-Type: application/json) -
表单数据(x-www-form-urlencoded):用
data=传字典,不加json= -
请求头(Headers):如认证需加
headers={"Authorization": "Bearer xxx"}
处理响应与常见异常
别只靠 response.status_code 判断成功,还要关注业务逻辑返回码和网络稳定性:
立即学习“Python免费学习笔记(深入)”;
- 始终检查
response.raise_for_status()可快速抛出 HTTP 错误(4xx/5xx) - 对 JSON 接口,用
try...except ValueError:捕获解析失败(空响应或非 JSON 内容) - 设置超时:
requests.get(url, timeout=5),避免请求无限挂起 - 敏感字段(如 token)不要硬编码,建议从环境变量读取:
os.getenv("API_TOKEN")
封装成可复用的客户端类
项目中多次调用同一 API 时,推荐封装基础 Client:
- 初始化时传入 base URL 和默认 headers(含认证)
- 提供
get()、post()等方法,统一处理重试、日志、错误映射 - 示例片段:
def post(self, endpoint, json=None, data=None): return self.session.post(f"{self.base}{endpoint}", json=json, data=data) - 用
requests.Session()复用连接,提升批量请求性能










