# WebCurl **Repository Path**: chenlingbin/WebCurl ## Basic Information - **Project Name**: WebCurl - **Description**: 极简网页版API调试神器 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 4 - **Created**: 2025-08-30 - **Last Updated**: 2025-08-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🚀 WebCurl - 极简网页版API调试神器 > **⚡ 一个文件搞定所有API测试需求 | 🎯 替代Postman的轻量级选择 | 🔒 数据本地化,安全无忧** [![Go Version](https://img.shields.io/badge/Go-1.19+-blue.svg)](https://golang.org) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20Linux%20%7C%20MacOS%20%7C%20ARM-lightgrey.svg)]() > **联系我: QQ 774309635** ## ✨ 为什么选择 WebCurl? 还在为API调试工具而烦恼吗?Postman太臃肿?curl命令行太复杂?试试 **WebCurl** 吧! 🎉 **一个8MB的二进制文件 = 完整的API测试解决方案** 💡 **源码极简**:仅2个文件(`index.html` + `main.go`)实现完整功能 ### 🌟 核心优势对比 | 特性 | WebCurl | Postman | curl | |------|---------|---------|------| | **安装复杂度** | ⭐ 一个文件 | ⭐⭐⭐ 需要安装 | ⭐⭐ 命令行 | | **跨域支持** | ✅ 完美解决 | ✅ 原生支持 | ✅ 原生支持 | | **文件大小** | 10MB | 200MB+ | 系统自带 | | **离线使用** | ✅ 完全离线 | ❌ 需要登录 | ✅ 完全离线 | | **数据安全** | ✅ 本地存储 | ❌ 云端同步 | ✅ 本地存储 | | **信创兼容** | ✅ 完美支持 | ❌ 有限支持 | ✅ 完美支持 | | **IPv6支持** | ✅ 完美支持 | ✅ 支持 | ✅ 原生支持 | | **源码简洁** | ✅ 仅2个文件 | ❌ 复杂项目 | ❌ 复杂项目 | | **实时通信** | ✅ WebSocket+SSE | ❌ 仅HTTP | ❌ 仅HTTP | | **调试接口** | ✅ 内置EchoServer | ❌ 需额外工具 | ❌ 需额外工具 | ## 📖 简介 本项目是一个极致轻量、跨平台、无依赖的 HTTP 请求转发与调试工具,**本质上就是一个网页版的API测试与调试工具**,适合接口开发、调试、测试等多种场景。 - **前端**:纯原生 HTML+JS+CSS,无任何第三方库或依赖,开箱即用,加载速度极快。 - **后端**:仅使用 Golang 标准库,无任何第三方依赖,安全可靠。 - **源码极简**:整个项目仅包含2个文件(`index.html` + `main.go`),代码结构清晰,易于理解和维护。 - **产物**:编译后仅有一个约 14M 的单一二进制文件(含前端页面),无需安装、无需环境、无需依赖,直接运行。 - **平台支持**:支持 Windows、Linux、MacOS、ARM、x86_64、信创(国产芯片/操作系统)等主流及国产平台,真正做到"一次编译,到处运行"。 - **网络支持**:完美支持 IPv4 和 IPv6 网络协议,适应各种网络环境。 - **实时通信**:原生支持 WebSocket 和 SSE(Server-Sent Events),满足实时数据推送需求。 - **内置调试服务**:集成强大的EchoServer,提供完整的请求回显和响应控制功能。 - **适用场景**:接口联调、API 测试、前端跨域调试、信创环境接口测试、离线/内网环境接口调试等。 - **数据本地化存储,保障安全**:所有接口信息、历史记录、变量、全局头等均仅存储于本地浏览器(localStorage),不会同步到云端或外部服务器,保障接口数据的私密性与安全性,适合企业内网、敏感环境使用。 **主要用途**:API 测试与调试,替代某些需要登录才能使用工具(xxxxMan,xxxFox) - 支持多种请求体格式(form-data、x-www-form-urlencoded、json、text、xml、binary) - 支持文件上传、下载 - 支持请求重试、超时、SSL 验证、重定向等高级选项 - 支持 WebSocket 和 SSE(Server-Sent Events)实时通信 - 内置美观易用的前端页面,支持接口历史、变量、全局头、接口集合管理 - 支持命令行参数自定义监听端口、静态目录、日志、SSL 等 - **内置EchoServer调试服务**:提供完整的请求回显、响应控制、流式通信功能 --- ![演示截图](https://gitee.com/o8oo8o/public/raw/master/webcurl_01.png) --- ![演示截图](https://gitee.com/o8oo8o/public/raw/master/webcurl_02.png) --- ### 打赏我: * **每一个开源项目的背后,都有一群默默付出、充满激情的开发者。他们用自己的业余时间,不断地优化代码、修复bug、撰写文档,只为让项目变得更好。如果您觉得我的项目对您有所帮助,如果您认可我的努力和付出,那么请考虑给予我一点小小的打赏,友情提示:打赏不退,怕被媳妇查到大额支出🤡,如果需要技术支持,需要收费哦**

![打赏二维码](https://gitee.com/o8oo8o/public/raw/master/pay.png) [项目推荐: https://github.com/o8oo8o/WebSSH 一个网页版的SSH管理工具](https://github.com/o8oo8o/WebSSH "一个网页版的SSH管理工具")
## 🛠️ 功能特性 ### 🔥 核心功能 - **🌐 网页版 Postman 体验**:无需安装客户端,浏览器即用,界面美观,功能丰富。 - **🔄 HTTP 请求转发**:前端通过 `/api/forward` 接口将请求参数提交给后端,后端代为转发并返回结果,突破浏览器跨域限制。 - **支持 HTTP CONNECT 代理隧道**:支持 HTTP CONNECT 方法,可作为 HTTPS/SSH 等协议的代理隧道,适用于 curl、ssh、ncat 等工具的代理转发。 - **📁 多种请求体支持**:支持 `form-data`(含多文件上传)、`x-www-form-urlencoded`、`json`、`text`、`xml`、`binary`。 - **🔧 请求头自定义**:支持自定义任意请求头。 - **📤 文件上传/下载**:支持多文件上传,响应内容可直接下载。 - **🔄 请求重试与超时**:可配置重试次数、重试间隔、超时时间。 - **🔒 SSL 验证与重定向**:可选择是否校验 SSL 证书、是否自动跟随重定向。 - **📚 前端功能丰富**:接口历史、接口集合、变量替换、全局请求头、导入导出等。 - **⚙️ 命令行灵活配置**:支持自定义监听地址、端口、静态目录、日志、SSL 证书等。 - **⚡ 极致轻量**:单一二进制文件,体积仅约 10M,部署、迁移、分发极其方便。 - **💾 无依赖、易运维**:无需数据库、无需外部依赖,直接运行。 - **🖥️ 跨平台/信创兼容**:支持主流操作系统及国产软硬件平台,适合信创环境、内网、离线等特殊场景。 - **🌐 网络协议支持**:完美支持 IPv4 和 IPv6 网络协议,适应各种网络环境。 - **🔌 实时通信支持**:原生支持 WebSocket 和 SSE(Server-Sent Events),满足实时数据推送需求。 ### 🎯 EchoServer 调试服务 - **🔄 智能请求回显**:自动解析并回显请求的URL、方法、请求头、请求体(文本、表单、文件、二进制等)。 - **🎛️ 灵活响应控制**:支持通过自定义请求头或URL参数灵活控制响应内容和行为。 - **📊 多种响应格式**:支持JSON、XML、Text等多种响应格式。 - **⏱️ 响应延迟控制**:可自定义响应延迟时间,模拟网络延迟场景。 - **📥 下载响应控制**:支持将响应内容作为文件下载。 - **🔌 流式通信支持**:SSE和WebSocket接口支持流式数据推送。 - **🎯 自定义数据队列**:支持预设响应数据,实现自定义流式推送。 - **🛡️ 健壮性保障**:内置panic恢复机制,防止服务崩溃。 ### 🌐 静态文件服务器 - **📁 完整文件服务**:类似Nginx的静态文件服务器功能,支持所有常见文件类型。 - **🎨 丰富MIME支持**:自动识别HTML、CSS、JS、图片、音频、视频、字体等文件类型。 - **🔒 安全防护**:防止路径遍历攻击,确保文件访问安全。 - **⚡ 高性能**:支持大文件传输,内置缓存控制。 - **🌍 CORS支持**:内置跨域资源共享支持,适合前端开发。 - **📱 移动友好**:支持移动设备访问,响应式设计。 ### 🧰 常用工具 - **JWT解析**:支持一键解析 JWT Token,快速查看 Payload 信息,便于调试鉴权接口。 - **UUID生成**:支持生成标准 UUID,方便接口测试与数据填充。 - **时间戳转换**:支持毫秒/秒时间戳与日期时间的相互转换,适配多种场景。 - **Base64编解码**:支持 Base64 字符串的编码与解码,便于处理二进制与文本数据。 - **Token生成器**:支持自定义规则生成随机 Token,适合接口测试、模拟登录等场景。 --- ## 🚀 快速开始 ### 1️⃣ 编译 & 运行(30秒搞定) **源码结构极简**: ``` WebCurl/ ├── index.html # 前端界面(纯原生HTML+JS+CSS) └── main.go # 后端服务(Go标准库) ``` ```bash # 编译 go build -o WebCurl main.go # 也可以使用 sh build.sh 命令 # 运行(默认 0.0.0.0:4444,内嵌前端页面) ./WebCurl # 浏览器访问 http://localhost:4444 ``` > **注** :构建所有平台可执行文件,请使用 `sh build.sh all` 命令,构建完成后在build目录下查找对应平台可执行文件。 ### 2️⃣ 命令行参数 | 参数 | 说明 | 默认值 | |---------------------|----------------------------------------|-----------------------| | `--host` | 监听地址 | 0.0.0.0 | | `--port` | 监听端口 | 4444 | | `--webroot` | 静态文件根目录(为空用内嵌 index.html)| 空 | | `--daemon` | 后台运行(支持 Windows/Linux/Mac) | false | | `--echo-server` | 是否开启EchoServer调试服务 | true | | `--log-level` | 日志级别(error, info, debug) | error | | `--log-file` | 日志文件路径 | post_api.log | | `--log-size` | 日志文件大小限制(K/M/G) | 100M | | `--ssl-cert` | SSL 证书文件路径 | ssl_cert.pem | | `--ssl-cert-key` | SSL 证书密钥路径 | ssl_cert.key | | `--upload-dir` | form-data上传文件保存目录(为空仅透传) | 空 | | `--stdout-log` | 是否在控制台打印日志,true为同时输出到控制台和文件,false仅输出到文件 | true | #### 启动示例 ```bash # 默认(0.0.0.0:4444,内嵌index.html,开启EchoServer) ./WebCurl # 指定端口和host ./WebCurl --host 127.0.0.1 --port 8888 # 指定静态目录 ./WebCurl --webroot /tmp/www # 控制日志是否输出到控制台 ./WebCurl --stdout-log=false # 开启静态文件服务器模式(指定目录) ./WebCurl --webroot /mnt/webroot # 关闭EchoServer调试服务 ./WebCurl --echo-server=false # 后台运行(Linux/MacOS/Windows) ./WebCurl --daemon # 组合 ./WebCurl --host 0.0.0.0 --port 9000 --webroot /tmp/www --daemon --stdout-log=false ``` ### 🐳 容器化部署 · 极速上云 ### 🚀 一键 Docker 部署 WebCurl 天生适合容器化,支持 Docker/Kubernetes 等主流云原生环境,轻松实现弹性扩展与自动化运维! #### 1️⃣ Docker 镜像构建与运行 ```bash # 构建镜像 docker build -t webcurl:2.2 . # 运行容器(默认 0.0.0.0:4444) docker run -d -p:4444:4444 --name webcurl webcurl:2.2 # 指定数据/静态目录挂载 docker run -d --name webcurl -p 4444:4444 -v /usr/share/nginx/html/:/usr/local/WebCurl/webroot webcurl:2.2 /usr/local/WebCurl/WebCurl --webroot=/usr/local/WebCurl/webroot ``` #### 2️⃣ Kubernetes 极速部署 WebCurl 完美兼容 K8S,支持无状态部署、弹性伸缩、健康检查等企业级需求。 **示例 Deployment 配置:** ```yaml ###################################### apiVersion: apps/v1 kind: Deployment metadata: name: webcurl spec: replicas: 1 selector: matchLabels: app: webcurl template: metadata: labels: app: webcurl spec: containers: - name: webcurl image: webcurl:2.2 ports: - containerPort: 4444 # args: ["/usr/local/WebCurl/WebCurl","--echo-server=true","--port=4444"] --- apiVersion: v1 kind: Service metadata: name: webcurl spec: type: NodePort ports: - port: 4444 targetPort: 4444 nodePort: 30444 selector: app: webcurl ###################################### ``` > 只需 `kubectl apply -f webcurl.yaml`,即可在 K8s 集群中弹性部署 WebCurl! ### 🌈 容器化优势 - **极致轻量**:单一二进制+极简镜像,启动快、资源占用低 - **云原生友好**:无状态设计,天然适配 K8S、Docker、OpenShift 等平台 - **弹性扩展**:支持副本横向扩展,轻松应对高并发 - **自动化运维**:支持健康检查、日志挂载、配置注入 - **一键迁移**:镜像即服务,随时随地部署到任意云/集群/本地 --- **WebCurl,让 API 调试与测试像部署静态网站一样简单,轻松上云,随时随地,安全高效!** --- ## 🎯 适用场景 ### 💼 企业级应用 - **内网环境**:数据不出内网,安全可控 - **信创环境**:完美支持国产芯片和操作系统 - **离线部署**:无网络环境也能正常使用 - **团队协作**:配置可导出分享,便于团队统一 ### 👨‍💻 开发者日常 - **接口联调**:前后端接口调试必备 - **API测试**:自动化测试前的接口验证 - **跨域调试**:完美解决前端跨域问题 - **文件上传测试**:支持多文件上传测试 - **接口调试**:EchoServer提供完整的请求回显和响应控制 ### 🔧 运维测试 - **接口监控**:定期测试关键接口状态 - **性能测试**:支持重试和超时配置 - **SSL测试**:SSL证书验证测试 - **重定向测试**:自动跟随重定向测试 - **实时通信测试**:WebSocket连接和SSE事件流测试 - **网络延迟模拟**:EchoServer支持响应延迟控制 ### 🌐 静态文件服务 - **网站托管**:快速部署静态网站,支持HTML、CSS、JS等 - **文件分享**:企业内部文件分享和下载服务 - **开发环境**:前端开发时的本地文件服务器 - **文档服务**:API文档、技术文档的在线访问 - **资源托管**:图片、视频、音频等多媒体资源托管 - **CDN替代**:小型项目的CDN服务替代方案 --- ## 📖 前端使用说明 ### 1. 访问页面 启动后,浏览器访问 `http://localhost:4444`,即可进入 Postman 风格的调试页面。 ### 2. 请求模式自动切换 - 前端会自动请求 `/api/mode`,如返回 `{ "mode": "proxy" }`,则所有请求将通过后端 `/api/forward` 转发,解决跨域问题。 - 否则,前端直接用 fetch 发起请求。 ### 3. 发送请求(代理模式) - 支持 GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS 等方法 - 支持多种请求体格式、文件上传、请求头自定义 - 支持变量替换、全局头、接口集合、历史记录等 - 支持请求参数、重试、超时、SSL 验证、重定向等高级选项 --- ## 🔧 后端接口说明 ### 1. `/api/forward`(POST) 用于前端通过 form-data 方式提交请求参数,由后端转发到目标接口。 #### 支持的 form-data 字段 | 字段名 | 类型/说明 | 示例/说明 | |----------------|------------------|--------------------------------------------| | url | string | 目标接口地址 | | time_out | int | 超时时间(秒),0为不超时 | | retry_count | int | 重试次数,0为不重试 | | retry_delay | int | 重试间隔(秒),0为无间隔 | | method | string | 请求方法,默认 GET | | body_type | string | 请求体类型,见下表 | | headers | json字符串 | `[{"name":"X-Token","value":"abc"}]` | | file_info | json字符串 | `[{"field_name":"files","file_name":"a.txt"}]` | | files | 文件 | 支持多文件上传 | | body | string | 请求体内容(json/xml/text等) | | verify_ssl | Y/N | 是否校验SSL,默认Y | | follow_redirect| Y/N | 是否自动跟随重定向,默认Y | #### body_type 支持 - `form-data`:多文件上传,表单参数 - `x-www-form-urlencoded`:标准表单 - `json`:application/json - `text`:text/plain - `xml`:application/xml - `binary`:二进制文件上传 - `none`:无请求体 ### 2. `/api/mode`(GET) 返回当前后端模式,前端据此判断是否需要通过后端转发。 **返回示例** ```json { "mode": "proxy" } ``` ### 3. EchoServer 调试接口 #### 3.1 `/api/echo`(所有HTTP方法) **功能**:智能请求回显,支持灵活的响应控制。 **特性**: - 支持所有HTTP方法(GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS等) - 自动解析并回显请求的URL、方法、请求头、请求体 - 支持文本、表单、文件上传、二进制等多种请求体类型 - 支持通过自定义请求头或URL参数灵活控制响应 **响应控制参数**: | 请求头 | 作用 | 示例值 | |-------------------------|---------------------------------------------------|--------------------------------| | X-Response-Status-Code | 控制HTTP响应状态码 | 201、404、500 | | X-Response-Location | 设置响应Location头 | https://www.qq.com | | X-Response-Headers | 批量设置响应头(JSON字符串,键值对) | {"X-Foo":"Bar"} | | X-Response-Type | 控制响应体格式(json/xml/text) | json、xml、text | | X-Response-Sleep | 控制响应延迟(单位:毫秒) | 200、1000 | | X-Response-Body | 指定Base64编码的响应body内容(优先级最高) | `eyJtc2ciOiJoZWxsbyJ9` | | X-Response-Download | 控制响应为下载,指定下载文件名 | data.txt、result.json | **参数传递方式**: - 支持请求头方式:`curl -H "X-Response-Status-Code: 202" http://localhost:4444/api/echo` - 支持URL参数方式:`curl "http://localhost:4444/api/echo?X-Response-Status-Code=202"` - **请求头优先级高于URL参数** **基本用法示例**: ```bash # 普通请求 curl -X GET http://localhost:4444/api/echo curl -X POST -d 'Hello World' http://localhost:4444/api/echo # 表单与文件上传 curl -X POST -F 'text=Hello' -F 'file=@/path/to/file' http://localhost:4444/api/echo # 控制响应状态码 curl -H "X-Response-Status-Code: 202" http://localhost:4444/api/echo # 控制响应类型 curl -H "X-Response-Type: xml" http://localhost:4444/api/echo curl -H "X-Response-Type: text" -d "a simple text body" http://localhost:4444/api/echo # 控制响应延迟 curl -H "X-Response-Sleep: 500" http://localhost:4444/api/echo # 自定义响应体(Base64编码) curl -H "X-Response-Body: eyJtc2ciOiJoZWxsbyJ9" http://localhost:4444/api/echo # 下载响应内容 curl -H "X-Response-Download: data.txt" http://localhost:4444/api/echo -OJ ``` **响应结构**: ```json { "method": "POST", "url": "http://localhost:4444/api/echo", "headers": [ {"key": "Content-Type", "value": "application/json"}, ... ], "body": "Hello World" } ``` #### 3.2 `/api/sse/echo`(SSE流式接口) **功能**:Server-Sent Events流式回显,适合前端流式消费。 **特性**: - 支持所有HTTP方法 - 返回SSE流,每条消息为JSON - 支持自定义响应参数 - 支持流式数据推送 **额外参数**: - `X-Response-Sse-Count`:SSE消息条数,默认100 - `X-Response-Sleep`:每条SSE消息间隔(毫秒),默认500 **用法示例**: ```bash # 基本SSE请求 curl http://localhost:4444/api/sse/echo # POST带body curl -X POST -d 'Hello SSE' http://localhost:4444/api/sse/echo # 控制SSE消息条数和间隔 curl -H "X-Response-Sse-Count: 5" -H "X-Response-Sleep: 1000" http://localhost:4444/api/sse/echo # SSE上传文件 curl -X POST -F 'file=@/path/to/file' http://localhost:4444/api/sse/echo ``` #### 3.3 `/api/ws/echo`(WebSocket接口) **功能**:WebSocket流式回显,适合前端WebSocket流式消费。 **特性**: - 支持WebSocket协议,升级连接后推送多条消息 - 支持所有HTTP方法(WebSocket仅升级GET,其他方法通过header传递) - 支持自定义响应参数 **额外参数**: - `X-Response-Websocket-Count`:WebSocket消息条数,默认100 - `X-Response-Sleep`:每条消息间隔(毫秒),默认500 **用法示例**: ```bash # WebSocket基本请求(需WebSocket客户端) wscat -c ws://localhost:4444/api/ws/echo # 控制消息条数和间隔 wscat -c "ws://localhost:4444/api/ws/echo?X-Response-Websocket-Count=5&X-Response-Sleep=1000" # WebSocket自定义响应内容(Base64) wscat -c "ws://localhost:4444/api/ws/echo?X-Response-Body=eyJtc2ciOiJoZWxsbyB3cyJ9" ``` #### 3.4 自定义数据队列接口 **`POST /api/sse/set`**:设置SSE响应的消息队列 **`POST /api/ws/set`**:设置WebSocket响应的消息队列 **功能**:预设响应数据,实现自定义流式推送。 **请求体格式**: ```json [ {"value": {"v": 1, "data": "mydata"}}, {"value": {"v": 2, "data": 123}}, {"value": "mydata"}, {"value": null}, {"value": 123} ] ``` #### 3.5 响应模式控制 通过请求头 `X-Response-Mode` 控制SSE/WS响应行为: - `default`(默认):原有回显逻辑,自动回显请求内容 - `user`:从预设队列中依次取出value作为响应体 - `react`:连接建立后等待用户推送数据(WebSocket专用) **用法示例**: ```bash # 设置SSE队列 curl -X POST -H "Content-Type: application/json" \ -d '[{"value":{"v":1,"data":"mydata"}}, {"value":{"v":2,"data":123}}]' \ http://localhost:4444/api/sse/set # SSE user模式消费 curl -H "X-Response-Mode: user" http://localhost:4444/api/sse/echo # 设置WS队列 curl -X POST -H "Content-Type: application/json" \ -d '[{"value":{"v":1,"data":"mydata"}}, {"value":{"v":2,"data":123}}]' \ http://localhost:4444/api/ws/set # WS user模式消费 wscat -c "ws://localhost:4444/api/ws/echo?X-Response-Mode=user" ``` ### 4. HTTP CONNECT 代理隧道支持 **功能**:支持 HTTP CONNECT 方法,可作为 HTTPS/SSH 等协议的代理隧道。 - 可直接作为 curl、ssh、ncat 等工具的 HTTP 代理服务器。 - 通过 CONNECT 建立 TCP 隧道,支持 HTTPS、WebSocket、SSH 等协议的转发。 - 适合企业内网、开发测试等需要代理隧道的场景。 **用法示例**: ```bash # curl 通过 HTTP 代理访问 HTTPS 站点 curl -k -x http://localhost:4444 https://www.example.com # ssh 通过 HTTP 代理 ssh -o "ProxyCommand ncat --proxy 127.0.0.1:4444 --proxy-type http %h %p" user@host ``` - 该功能无需额外配置,服务启动后自动支持。 - 日志中会记录 CONNECT 隧道的建立与关闭。 --- ## 🎨 前端高级功能 - **📊 接口历史**:自动保存最近 50 条请求历史,支持一键加载、导入导出、清空 - **📚 接口集合**:支持多集合管理,接口保存、导入导出、删除 - **🔧 变量管理**:支持变量定义与替换,便于环境切换 - **🎛️ 全局请求头**:支持全局头配置,自动合并到每次请求 - **⚙️ 请求配置**:支持 SSL 验证、重定向、超时、重试、缓存、mode、credentials、referrerPolicy 等高级 fetch 选项 - **💾 导入导出**:支持全部配置一键导入导出,便于迁移和备份 --- ## 🔍 常见问题 ### ❓ 为什么需要后端转发? > 由于浏览器同源策略,前端直接请求第三方接口会遇到 CORS 限制。通过本工具的后端转发,前端只需请求本地服务即可,后端再代为请求目标接口,绕过跨域限制。 ### ❓ 如何上传多个文件? > 在前端选择 `form-data`,每个文件都可单独选择,支持多文件上传。后端会自动处理。 ### ❓ 如何保存上传的文件到指定目录? > 启动时通过 `--upload-dir=/your/path` 参数指定目录,form-data上传的文件会自动保存到该目录(存在则覆盖)。目录需提前创建并有写权限。 ### ❓ 如何自定义请求头? > 在前端"请求头"标签页添加即可,支持变量替换。 ### ❓ 如何切换为直接请求(不走代理)? > 只需关闭后端服务或修改 `/api/mode` 返回内容,前端会自动切换为直连模式。 ### ❓ 数据安全吗? > 所有数据仅存储在浏览器本地(localStorage),不会上传到任何服务器。企业内网、敏感环境使用无忧。 ### ❓ 支持哪些平台? > 支持Windows、Linux、MacOS、ARM架构,包括国产信创平台。一次编译,到处运行。同时完美支持IPv4和IPv6网络协议。 ### ❓ 源码有多复杂? > 整个项目仅包含2个文件:`index.html`(前端界面)和`main.go`(后端服务),代码结构极其简洁,易于理解和维护。 ### ❓ 支持哪些通信协议? > 除了传统的HTTP/HTTPS请求,还原生支持WebSocket(双向通信)和SSE(Server-Sent Events,单向实时推送),满足各种实时通信需求。 ### ❓ EchoServer有什么用? > EchoServer提供完整的请求回显和响应控制功能,适合接口调试、自动化测试、网络延迟模拟等场景。支持多种响应格式和流式通信。 ### ❓ 如何关闭EchoServer? > 启动时添加 `--echo-server=false` 参数即可关闭EchoServer调试服务。 ### ❓ 如何开启静态文件服务器模式? > 使用 `--webroot` 参数启动静态文件服务器模式。所有API接口将失效,变成一个纯静态文件服务器。 ### ❓ 静态文件服务器支持哪些文件类型? > 支持所有常见文件类型:HTML、CSS、JS、图片(PNG/JPG/GIF/SVG)、音频(MP3/WAV)、视频(MP4)、字体文件、PDF、压缩包等。会自动设置正确的MIME类型。 --- ## 🤝 贡献与反馈 - 🐛 欢迎提交 issue 或 PR,完善功能和文档。 - 💡 如有建议或 bug,欢迎反馈! --- ## 📄 License MIT --- 如需进一步定制或有疑问,欢迎联系作者。 --- **⭐ 如果这个项目对你有帮助,请给我们一个Star!** **💬 有任何问题或建议,欢迎在GitHub上讨论!** --- *让API调试变得简单而优雅* ✨