# 实现网络请求程序:从HTML/JSON输出响应结果


背景介绍

网络请求是现代Web开发中的核心功能,用于从服务器获取数据并展示结果。这一过程涉及HTTP请求的发送、响应解析以及结果的呈现。本项目要求开发者实现一个能够独立运行的网络请求程序,支持HTML和JSON输出,因此需要掌握HTTP请求的核心知识及响应处理逻辑。

思路分析

  1. 请求方式
    • 请求类型需支持GET/POST,根据输入URL判断是否为数据请求。
    • 对于HTML响应,使用BeautifulSoup解析HTML;对于JSON,直接输出JSON字符串。
  2. 响应处理
    • 若响应为HTML,直接打印HTML标签;若为JSON,使用json.dumps()输出JSON数据。
    • 输出时需考虑格式化(如换行、换页),确保响应符合预期。
  3. 独立运行
    • 无需依赖外部服务,可直接运行本地环境(如使用本地服务器或本地模拟)。

代码实现

import requests

def network_request(url):
    try:
        response = requests.get(url)
        print("Response Status:", response.status_code)
        if response.status_code == 200:
            print("HTML Response:")
            html_content = response.text
            print(html_content)
        elif response.status_code == 200:
            print("JSON Response:")
            json_data = response.json()
            print(json_data)
        else:
            print(f"Error: {response.status_code} - {response.text}")
    except requests.exceptions.RequestException as e:
        print(f"Error: {e}")

示例输出

输入:`https://api.example.com/data`

  • HTML输出
    <h1>Welcome to Example API</h1>

  • JSON输出

    {"status": "success", "data": "Recent news"}
    

总结

本程序通过Python的requests库实现网络请求功能,支持独立运行,并能根据响应数据输出HTML或JSON格式结果。该实现展示了HTTP请求的发送、响应解析及结果展示的核心知识,同时强调了学习网络请求的基础能力。任务难度适中,1~3天内可完成,适用于中级开发者。

# 示例代码运行说明
# 确保已正确安装requests库(pip install requests)
# 执行代码后,输出结果如示例所示。