⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 极客之家 「丛林」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

在当今API驱动的开发环境中,开发者们经常需要高效的工具来测试和调试各种HTTP接口。WebCurl作为一个极致轻量、跨平台、无依赖的HTTP请求转发与调试工具,为开发者提供了网页版的API测试解决方案。

简介

WebCurl是GitHub上一个名为”极简网页版API调试神器”的开源项目。

与Postman、Insomnia等传统API测试工具不同,WebCurl采用了完全不同的设计哲学——极简主义与无依赖架构,打造了一个无需安装、开箱即用的网页版解决方案 。

这个项目的核心目标是解决传统API调试工具的几大痛点:

  • 复杂臃肿: 许多API工具功能过于繁杂,启动缓慢
  • 平台限制: 需要下载安装特定平台的客户端
  • 隐私担忧: 部分商业化工具需要注册账户并上传API数据
  • 内网限制: 企业内网环境难以使用云端服务

WebCurl通过其独特的设计,完美应对了这些挑战,成为接口开发、调试和测试的理想选择。

技术架构

WebCurl的技术架构体现了”少即是多“的设计理念:

  • 前端: 纯原生HTML+JS+CSS实现,不依赖任何第三方库或框架,保证了极致的加载速度和运行效率 。
  • 后端: 仅使用Golang标准库,没有任何外部依赖,确保了安全性和可靠性 。
  • 代码精简: 整个项目仅包含2个文件——index.html和main.go,代码结构清晰,易于理解和维护 。

这种架构使得WebCurl的编译产物仅为一个约14MB的单一二进制文件(包含前端页面),真正实现了”一次编译,到处运行”的跨平台体验 。

功能特点

核心功能

  • 网页版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接口支持流式数据本体。
  • 自定义数据队列:支持默认响应数据,实现自定义流式自适应。
  • 健壮性保障:内置恐慌恢复机制,防止服务崩溃。

静态文件服务器

  • 完整文件服务:类似Nginx的静态文件服务器功能,支持所有常见文件类型。
  • 丰富的MIME支持:自动识别HTML、CSS、JS、图片、音频、视频、字体等文件类型。
  • 安全防护:防止路径攻击,确保文件访问安全。
  • 高性能:支持大文件传输,内置存储控制。
  • CORS支持:内置跨域资源共享支持,适合前端开发。
  • 移动接口:支持移动设备访问,响应式设计。

常用工具

  • JWT解析:支持一键JWT Token,快速查看Payload信息,即可调试鉴权接口。
  • UUID生成:支持生成标准UUID,方便接口测试与数据填充。
  • 时间转换:支持毫秒/秒时钟与日期时间的相互转换,适配多个场景。
  • Base64编码解码:支持Base64字符串的编码与解码,其次处理二进制与文本数据。
  • Token生成器:支持自定义规则生成随机Token,适合接口测试、模拟登录等场景。

快速开始

安装与运行

从GitHub仓库下载预编译的二进制文件

# 编译
go build -o WebCurl main.go
# 也可以使用 sh build.sh 命令

# 运行(默认 0.0.0.0:4444,内嵌前端页面)
./WebCurl

# 浏览器访问
http://localhost:4444

命令行选项

WebCurl支持多种启动参数以满足不同需求:

  • -p:指定监听端口
  • -d:设置静态文件目录
  • -s:启用HTTPS模式
  • -c:指定SSL证书路径

例如,要在9000端口运行并启用HTTPS:

./webcurl -p 9000 -s -c /path/to/cert

界面预览

开源地址

https://github.com/o8oo8o/WebCurl

文章目录
  1. 1. 简介
  2. 2. 技术架构
  3. 3. 功能特点
    1. 3.0.1. 核心功能
    2. 3.0.2. EchoServer 调试服务
    3. 3.0.3. 静态文件服务器
    4. 3.0.4. 常用工具
  • 4. 快速开始
    1. 4.0.1. 安装与运行
    2. 4.0.2. 命令行选项
  • 5. 界面预览
  • 6. 开源地址