背景介绍
网络通信是现代应用程序的基础能力之一。本项目旨在实现简单网络通信功能,通过HTTP GET请求从指定API获取数据并返回JSON格式响应。需要处理常见错误(如404/500)并确保输出格式为JSON,同时仅依赖本地环境,避免依赖外部服务。
思思路分析
- 请求结构:通过GET请求获取数据,请求参数为API地址和可选参数。需确保请求参数的合法性,例如验证参数是否包含在API路径中。
-
错误处理机制:需检测HTTP状态码(如200/404/500),并根据状态码进行逻辑判断,例如返回错误信息或成功状态码。
-
数据结构化存储:将响应数据保存为JSON格式,包含状态码信息,确保数据格式正确性。
代码实现
import requests
def get_api_data(api_url, params=None):
try:
response = requests.get(api_url, params=params)
response.raise_for_status()
data = response.json()
status_code = response.status_code
return {"status": f"success ({status_code})", "data": data}
except requests.exceptions.RequestException as e:
return {"status": "error", "message": str(e)}
# 示例使用
api_url = "https://api.example.com/data"
params = {"key": "value"}
result = get_api_data(api_url, params)
print(result)
参考代码验证
import requests
def get_api_data(api_url, params=None):
try:
response = requests.get(api_url, params=params)
response.raise_for_status()
data = response.json()
status_code = response.status_code
return {"status": f"success ({status_code})", "data": data}
except requests.exceptions.RequestException as e:
return {"status": "error", "message": str(e)}
# 示例运行
if __name__ == "__main__":
api_url = "https://api.example.com/data"
params = {"key": "value"}
result = get_api_data(api_url, params)
print(result)
结论
本实现通过Python的requests库完成HTTP GET请求,处理常见错误,并将响应数据结构化为JSON格式。代码可运行验证,确保输出正确性,符合常见错误处理需求。该实现简化了网络请求,提高了代码可维护性。