# 实现网络请求功能:利用requests库获取响应内容的示例代码


背景介绍

网络请求是处理外部数据的重要手段,通过Python的requests库可以轻松实现HTTP请求的发送与结果解析。本示例实现了一个功能,用户可输入URL和参数(如GET /data?id=123),程序将发送HTTP请求获取响应内容,并输出结果。该功能适用于本地环境运行,支持文件读写处理。

思路分析

  1. 输入处理:用户输入URL和参数字符串,程序需解析参数并构建请求参数。
  2. 请求发送:使用requests.get()发送HTTP GET 请求,获取响应内容。
  3. 结果解析:解析响应内容,提取状态码和数据字段。
  4. 文件读写:在本地环境中保存输出内容(如日志文件或变量),便于调试和后续使用。

代码实现

import requests

def get_response(url_path, params=None, timeout=30):
    """
    发送GET请求获取响应内容并输出结果

    :param url_path: 请求的URL路径
    :param params: 请求参数(可选)
    :param timeout: 请求超时时间(默认30秒)
    """
    # 构建请求参数
    params = params or {}

    # 发送HTTP请求
    try:
        response = requests.get(url_path, params=params, timeout=timeout)
        response.raise_for_status()  # 捕获异常并抛出

        # 输出结果
        print(f"响应内容:")
        print(f"HTTP Status: {response.status_code}")
        print(f"数据:[{params.get('data'):?}]")

        # 存储输出到文件或变量
        # 示例:本地环境运行时存储输出内容到文件
        output_data = {
            "status_code": response.status_code,
            "data": params.get("data", [])
        }
        with open("response_output.txt", "w") as file:
            file.write(f"响应内容:\nHTTP Status: {response.status_code}\n数据:[{output_data['data']}]")

    except requests.exceptions.RequestException as e:
        print(f"请求失败: {str(e)}")

# 示例调用
if __name__ == "__main__":
    url = "https://api.example.com/data"
    params = {"id": 123}
    get_response(url, params)

总结

本示例实现了网络请求的核心功能,使用Python的requests库进行HTTP请求发送并输出结果。程序支持本地环境运行,方便调试和结果存储。该功能在1-3天内可实现,涉及基础网络知识,且具备良好的可读性和可执行性。通过文件读写操作,增强了程序的健壮性,便于后期维护。