背景介绍
本工具实现了一个小型网络通信框架,支持发送GET请求获取URL响应内容,并接收并解析来自网络的请求数据。该工具可运行在本地环境,通过输入HTTP请求参数,自动交互处理,同时支持本地文件存储和响应内容保存。
思路分析
本工具的实现分为两个核心功能模块:
1. 请求发送模块:使用requests.get发送HTTP GET 请求,提取请求参数并解析响应内容
2. 数据存储模块:将响应内容保存为本地文件,同时可存储请求参数信息
实现细节包括:
– 输入处理:通过用户交互获取请求参数,提取URL和消息内容
– 响应内容保存:使用JSON格式保存响应数据
– 文件存储逻辑:在本地文件中写入响应内容
代码实现
import requests
import json
def send_get_request(url, params=None):
"""
发送GET请求获取指定URL的响应内容,支持参数解析。
参数:
url (str): 请求的URL字符串
params (dict): 请求参数,可传入字典形式(如{"msg": "Hello World"})
返回:
dict: 响应内容(JSON格式)
"""
try:
response = requests.get(url, params=params)
# 处理可能的异常,如超时或错误
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
return None
def save_response_to_file(content, filename="response.json"):
"""
将响应内容保存到本地文件中
参数:
content (dict): 响应内容(JSON格式)
filename (str): 存储路径(可自定义)
"""
try:
with open(filename, "w", encoding="utf-8") as f:
json.dump(content, f, indent=2)
print(f"响应内容已保存到: {filename}")
except Exception as e:
print(f"保存响应内容时出错: {e}")
def main():
# 示例输入处理
input_line = input("请输入请求参数: GET /api/endpoint?msg=Hello World\n")
# 提取请求参数
url_params = input_line.split("?")[1].split("=")[1]
params = url_params.split("?")[1].split("=")[1] if "?" in url_params else {}
# 发送GET请求获取响应内容
response_content = send_get_request(url="http://localhost:8000/api/endpoint", params=params)
# 存储响应内容
save_response_to_file(response_content, "response.json")
if __name__ == "__main__":
main()
总结
本工具实现了以下核心功能:
1. 支持通过GET请求获取指定URL的响应内容
2. 可接收并解析来自网络的请求参数
3. 支持在本地环境中运行,数据存储为JSON格式
4. 提供可交互的输入输出功能
该工具可帮助开发者在本地环境进行网络通信测试,并通过本地文件保存响应数据,便于后续调试和扩展。