如何向API发起请求并捕获响应?请提供简洁解答
如何向API发起请求并捕获响应?
嘿,这个问题绝对是日常开发里的高频基础需求,我用最常用的Python场景给你拆解,保证简洁好懂!
1. 先准备好工具
Python里最流行的HTTP请求库就是requests,先通过pip安装:
pip install requests
2. 发起GET请求(最常见的查询类请求)
拿一个公开的测试API举例子,比如JSONPlaceholder的单条帖子接口:
import requests # 目标API的地址 api_url = "https://jsonplaceholder.typicode.com/posts/1" try: # 发起GET请求,拿到响应对象 response = requests.get(api_url) # 自动检查请求是否成功:如果HTTP状态码不是200(比如404、500),直接抛出异常 response.raise_for_status() # 解析响应内容:如果API返回JSON格式,用json()方法转成字典 response_data = response.json() print("API返回的内容:") print(response_data) # 还能获取其他响应信息,比如状态码、响应头 print(f"\n请求状态码:{response.status_code}") print(f"响应头信息:{response.headers}") except requests.exceptions.RequestException as e: # 捕获所有请求相关的异常(网络断了、API挂了、权限不够等等) print(f"请求出问题啦:{e}")
3. 发起POST请求(给API提交数据)
比如给测试API创建一条新帖子:
import requests api_url = "https://jsonplaceholder.typicode.com/posts" # 要提交给API的数据(通常是JSON格式) payload = { "title": "我的测试帖子", "body": "这是帖子的内容", "userId": 1 } try: # 发起POST请求,把数据通过json参数传进去 response = requests.post(api_url, json=payload) response.raise_for_status() # 解析API返回的创建结果 created_post = response.json() print("新创建的帖子信息:") print(created_post) except requests.exceptions.RequestException as e: print(f"提交数据失败:{e}")
4. 几个关键注意点
- 一定要加异常捕获:网络波动、API报错、权限问题都可能导致请求失败,用
try-except能让程序更健壮 - 根据响应格式选解析方式:如果返回纯文本用
response.text,二进制数据(比如图片)用response.content,JSON用response.json() - 需要请求头的情况:很多API要求带密钥或身份信息,直接加
headers参数就行,比如:headers = {"Authorization": "Bearer 你的API密钥"} response = requests.get(api_url, headers=headers)
内容的提问来源于stack exchange,提问作者Blue Bird
相关产品推荐
相关产品推荐

