第1.2章:HTTP 方法和状态码
学习时间: 40分钟
1. HTTP:宇宙交流语言
想象一下,您是飞行控制中心 (ЦУП),而API服务器是宇宙飞船。HTTP(超文本传输协议)是您们之间的无线电通信。
每条消息都包含:
-
方法 → 做什么(例如,“发射探测器”)
-
状态码 → 操作结果(“探测器发射成功!”)
💡 太空类比:
GET /stars
= "飞控中心 → 飞船:报告星星的坐标!"200 OK
= "飞船 → 飞控中心:坐标已传输!"
2. 主要HTTP方法
每种方法都像是太空任务的一种命令类型:
方法 | 太空类比 | 请求示例 | 描述 |
---|---|---|---|
GET | 请求数据(望远镜) | GET /planets |
获取行星列表 |
POST | 发送新对象(发射火箭) | POST /satellites |
创建新卫星 |
PUT | 完全更新对象(轨道修正) | PUT /satellites/iss |
更新国际空间站数据 |
DELETE | 销毁对象(脱离轨道) | DELETE /debris/123 |
删除太空垃圾 |
⚡ 代码示例 (Python):
import requests
# GET: 获取猎鹰9号火箭的数据
# 使用真实的SpaceX API端点
response = requests.get("https://api.spacexdata.com/v4/rockets/5e9d0d95eda69973a809d1ec")
print(response.status_code, response.json()['name']) # 200 Falcon 9
# POST: 在测试API中创建一个新帖子
# 使用jsonplaceholder沙盒服务
new_post = {"title": "Artemis Mission", "body": "Ready for launch", "userId": 1}
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=new_post)
print(response.status_code, response.json()['id']) # 201 101 (或其它ID)
3. 重要状态码
服务器响应——就像来自航天器的信号:
组 | 代码 | 太空类比 | 描述 |
---|---|---|---|
2xx |
200 | ✅ “任务完成!” | 成功 |
201 | 🚀 “火箭已发射!” | 对象已创建 | |
3xx |
301 | 🌍 “飞控中心已迁移到新地址” | 重定向 |
4xx |
400 | ❌ “请求中的坐标不正确!” | 客户端错误 |
404 | 🪐 “未找到行星!” | 资源不存在 | |
5xx |
500 | 🔥 “发动机故障!” | 服务器错误 |
4. 实践:处理状态码
始终检查API响应!错误处理示例:
import requests
def get_post_data(post_id):
"""一个用于获取帖子数据并处理状态码的函数。"""
try:
response = requests.get(f"https://jsonplaceholder.typicode.com/posts/{post_id}")
# 检查响应状态码
if response.status_code == 200:
print(f"✅ 帖子 {post_id} 的数据已成功获取!")
return response.json()
elif response.status_code == 404:
print(f"⚠️ 帖子 {post_id} 的资源未找到!")
return None
else:
# 处理其他客户端 (4xx) 或服务器 (5xx) 错误
print(f"🚨 发生错误!状态码:{response.status_code}")
return None
except requests.exceptions.RequestException as e:
# 处理连接错误(例如,没有互联网)
print(f"🔥 连接错误:{e}")
return None
# --- 测试我们的函数 ---
print("--- 查找现有帖子 ---")
get_post_data(1)
print("\n--- 查找不存在的帖子 ---")
get_post_data(9999) # 此帖子不存在,预期为404
🔭 真实API示例 (SpaceX): 请求:
GET https://api.spacexdata.com/v4/ships/OCISLY
响应:200 OK
+ 飞船数据 请求:GET https://api.spacexdata.com/v4/ships/UNICORN
响应:404 Not Found
巩固测验
🚀 本章总结: HTTP方法是您进行太空任务的命令,而状态码则是这些任务的执行报告。请记住:
GET
= “获取数据”,POST
= “创建新数据”,PUT
= “全部更新”,DELETE
= “删除”2xx
= 成功,4xx
= 你的错误,5xx
= 服务器问题
准备发射! 在下一章中,我们将解读来自服务器的“电报”——JSON格式。
📌 实践: 使用 SpaceX API,发送
GET /launches/latest
并研究响应代码!