# 编程问题解析:用Python获取HTTP请求响应内容并输出状态码


背景介绍

在互联网开发中,HTTP请求是获取服务器响应信息的核心手段。本程序旨在实现以下功能:
1. 输入一个URL;
2. 使用urllib.request模块发送GET请求;
3. 接收响应内容并输出状态码。

思路分析

  1. 请求方法:使用urllib.request.Request构建HTTP请求对象,指定方法为GET,并设置请求头(如Accept-Language)。
  2. 响应处理:通过response.read()获取响应内容,同时记录状态码(如response.status_code)。
  3. 输出格式:将状态码和响应文本格式化输出,例如:
    text
    HTTP/1.1 200 OK

代码实现

import urllib.request

def fetch_http_response(url):
    try:
        # 构建请求对象并发送GET请求
        req = urllib.request.Request(url, headers={"Accept-Language": "en"})
        response = urllib.request.urlopen(req)

        # 获取响应内容并打印状态码
        status_code = response.status
        response_text = response.read().decode('utf-8')
        print(f"{status_code} {response_text}")

        # 返回状态码以供后续处理
        return status_code

    except urllib.HTTPError as e:
        print(f"HTTP Error: {e.response.status} - {e.message}")
        return None

# 示例用法
if __name__ == "__main__":
    url_input = "https://example.com/api/data"
    status_code = fetch_http_response(url_input)
    print(f"响应状态码: {status_code}")

总结

本程序通过Python的urllib.request模块实现了HTTP请求的基本功能,关键点包括:
1. 使用urllib.request.Request构造请求对象;
2. 通过response.read()获取响应内容并记录状态码;
3. 输出格式符合示例要求。

该程序无需依赖外部库,代码可直接运行,适合中级程序员在3天内完成。