背景介绍
在互联网开发中,HTTP请求是获取服务器响应信息的核心手段。本程序旨在实现以下功能:
1. 输入一个URL;
2. 使用urllib.request模块发送GET请求;
3. 接收响应内容并输出状态码。
思路分析
- 请求方法:使用
urllib.request.Request构建HTTP请求对象,指定方法为GET,并设置请求头(如Accept-Language)。 - 响应处理:通过
response.read()获取响应内容,同时记录状态码(如response.status_code)。 - 输出格式:将状态码和响应文本格式化输出,例如:
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天内完成。