跳转到正文
月明星稀
返回

FlaskHTTPStudio - 在线webHTTP 请求测试工具(开源)

约 8 分钟阅读开发日志加载中浏览量

FlaskHTTPStudio 介绍

一个功能强大的 HTTP 请求测试工具,支持 cURL 解析、请求编辑、预设规则、历史记录等功能。基于 Flask + 原生 JavaScript 构建,提供现代化的 Web 界面和完善的安全防护。

开源地址

FlaskHTTPStudio-Github地址 欢迎各位Star、Fork。

功能演示

cURL 解析

从浏览器开发者工具直接粘贴 cURL 命令,自动解析为可编辑的请求表单。

curl 解析.png

请求编辑器

支持多种 HTTP 方法、Query 参数、Headers 和 Body 类型的可视化编辑。

请求编辑器.png

预设规则系统

配置智能预设规则,支持 KV 改值和 JSON Path 深层修改,可按域名和路径过滤作用域。

规则编辑器.png

历史记录与收藏

自动保存请求历史和响应数据,支持收藏、搜索和一键回放。

历史记录收藏.png

核心特性

1. cURL 解析

2. 请求编辑器

基础配置

Body 类型支持

3. 预设规则系统

强大的参数预设和自动化修改系统,支持:

规则类型

规则配置

规则管理

4. 历史记录与收藏

5. 高级选项

6. 响应查看器

响应抽屉(移动端友好)

7. 安全防护

SSRF 防护(核心安全模块)

其他安全措施

8. 数据持久化

所有数据保存在浏览器 localStorage:

9. 用户界面

响应式设计

交互特性

视觉反馈

10. 工具功能

技术架构

后端(Flask)

前端

API 端点

安装与运行

环境要求

安装步骤

  1. 克隆项目
git clone https://github.com/Ryderwe/FlaskHTTPStudio.git
cd FlaskHTTPStudio
  1. 安装依赖
pip install -r requirements.txt
  1. 运行应用
python app.py
  1. 访问应用
http://127.0.0.1:5000

生产部署建议

使用场景

1. API 调试

从浏览器开发者工具复制 cURL 命令,快速重放和修改请求。

2. 接口测试

使用预设规则批量修改参数,测试不同场景。

3. 参数化测试

配置 JSON Path 预设,快速修改深层 JSON 字段。

4. 请求收藏

保存常用 API 请求,支持快速回放。

5. 团队协作

导出预设规则 JSON,分享给团队成员。

使用示例

示例 1: 解析 cURL 并发送

  1. 从浏览器开发者工具复制 cURL (bash)
  2. 粘贴到 “cURL (bash) 解析” 面板
  3. 点击 “解析 → 编辑器”
  4. 自动填充所有字段并应用预设规则
  5. 点击 “发送” 查看响应

示例 2: 创建预设规则

  1. 切换到 “Presets” 标签
  2. 配置规则:
    • 规则名: update_timestamp
    • 类型: JSON Path 改值
    • 目标: Body(kv)
    • 匹配 path: data.timestamp
    • 默认值: 2024-01-01T00:00:00Z
    • 作用域域名: api.example.com
    • 启用: true
    • 自动应用: true
  3. 点击 “保存/更新”
  4. 下次解析包含该域名的请求时自动应用

示例 3: 文件上传

  1. 选择 Body 类型为 multipart
  2. 在 Body 文本框输入:
    file=@upload
    description=测试文件
  3. 在自动生成的文件选择器中选择文件
  4. 点击发送

安全注意事项

默认安全策略

自定义安全策略

如需访问特定内网服务或非标准端口,需修改 core/security.py:

# 允许其他端口
DEFAULT_ALLOWED_PORTS = {80, 443, 8080, 3000}

# 或在调用时传入
validate_public_url(url, allowed_ports={80, 443, 8080})

生产环境建议

项目结构

FlaskHTTPStudio/
├── app.py                 # Flask 应用主文件
├── requirements.txt       # Python 依赖
├── core/                  # 核心模块
│   ├── __init__.py
│   ├── curl_parser.py     # cURL 解析器
│   ├── sender.py          # HTTP 请求发送器
│   ├── response_store.py  # 响应临时存储
│   └── security.py        # SSRF 安全防护
├── templates/             # HTML 模板
│   └── index.html         # 主页面
└── static/                # 静态资源
    ├── app.css            # 样式文件
    └── app.js             # JavaScript 逻辑

开发计划

已实现功能

未来计划

常见问题

Q: 为什么无法访问 localhost?

A: 出于安全考虑,默认禁止访问所有内网地址。如需访问本地服务,请修改 core/security.py 中的安全策略。

Q: 响应被截断了怎么办?

A: 超过 2MB 的响应会被截断预览。可以使用下载按钮获取完整内容,或修改 core/sender.py 中的 MAX_PREVIEW_BYTES 常量。

Q: 历史记录保存在哪里?

A: 所有数据保存在浏览器的 localStorage 中,服务端不存储任何数据。清除浏览器数据会导致历史记录丢失。

Q: 如何备份预设规则?

A: 在 Presets 标签页点击 “导出 JSON”,将规则复制保存。需要恢复时点击 “导入 JSON” 粘贴即可。

Q: 支持哪些 cURL 选项?

A: 支持大部分常用选项,详见 “核心特性 - cURL 解析” 部分。不支持的选项会被忽略。

文章目录

分享这篇文章:

上一篇
抖音视频下载工具 - 可以一键下载无水印的收藏、主页、喜欢的所有视频
下一篇
iOS 版 SollinPlayer 已发布!

评论

欢迎留下你的想法。请友善交流,也可以顺手分享此刻的感受。