# 本地API请求示例:获取天气数据


背景介绍

本项目旨在帮助开发者学会使用本地环境中的网络请求功能,实现对API的调用。通过本示例,用户可以实现对天气数据的获取,成功与否可通过状态码与数据返回来判断。该示例采用Python语言,实现网络请求和JSON解析的基本功能,无需依赖外部框架,适用于教学场景。

思路分析

本示例的核心技术点包括:
1. 网络请求库:使用Python中的requests库进行HTTP请求
2. 状态码处理:检查响应状态码(如200表示成功,401表示认证失败)
3. 数据解析:通过JSON格式的天气数据返回

具体实现步骤如下:
1. 构造API URL和密钥
2. 发送GET请求
3. 处理响应状态码
4. 解析并展示JSON数据

代码实现

import requests

def get_weather_data(api_url, api_key):
    try:
        response = requests.get(api_url, headers={'Authorization': f'Bearer {api_key}'})
        response.raise_for_status()  # 避免未定义异常

        # 检查状态码
        status_code = response.status_code
        if status_code == 200:
            data = response.json()
            print(f"成功!天气数据:{data}")
        else:
            print(f"失败!状态码:{status_code}, 错误信息:{response.text}")
        return status_code, data
    except requests.exceptions.RequestException as e:
        print(f"请求失败:{e}")
        return 401, {"error": "请求失败"}

# 示例调用
if __name__ == "__main__":
    url = "http://api.example.com/wind"
    api_key = "YOUR_API_KEY"
    status_code, data = get_weather_data(url, api_key)
    status_code, data = get_weather_data(url, "YOUR_API_KEY")  # 示例密钥替换

总结

本示例实现了对本地API的请求功能,通过requests库完成了HTTP请求的发起,成功与否的状态码与数据返回得以展示。该实现过程强调了网络请求库的选择、状态码的检查以及JSON数据的解析,为学习网络编程提供了基础经验。通过本示例,开发者可以直观地看到如何处理API请求的各个细节,并理解状态码与数据返回的逻辑关系。

参考文档

  1. Python官方文档requests.get() 示例及状态码处理
  2. JSON解析示例json.loads() 的使用说明
  3. 状态码处理注意事项:常见错误状态码的错误信息处理方式