在當(dāng)今API驅(qū)動(dòng)的開發(fā)環(huán)境中,開發(fā)者們經(jīng)常需要高效的工具來測(cè)試和調(diào)試各種HTTP接口。WebCurl作為一個(gè)極致輕量、跨平臺(tái)、無依賴的HTTP請(qǐng)求轉(zhuǎn)發(fā)與調(diào)試工具,為開發(fā)者提供了網(wǎng)頁版的API測(cè)試解決方案。
簡介
WebCurl是GitHub上一個(gè)名為"極簡網(wǎng)頁版API調(diào)試神器"的開源項(xiàng)目。
與Postman、Insomnia等傳統(tǒng)API測(cè)試工具不同,WebCurl采用了完全不同的設(shè)計(jì)哲學(xué)——極簡主義與無依賴架構(gòu),打造了一個(gè)無需安裝、開箱即用的網(wǎng)頁版解決方案 。
這個(gè)項(xiàng)目的核心目標(biāo)是解決傳統(tǒng)API調(diào)試工具的幾大痛點(diǎn):
- ? 復(fù)雜臃腫: 許多API工具功能過于繁雜,啟動(dòng)緩慢
- ? 平臺(tái)限制: 需要下載安裝特定平臺(tái)的客戶端
- ? 隱私擔(dān)憂: 部分商業(yè)化工具需要注冊(cè)賬戶并上傳API數(shù)據(jù)
- ? 內(nèi)網(wǎng)限制: 企業(yè)內(nèi)網(wǎng)環(huán)境難以使用云端服務(wù)
WebCurl通過其獨(dú)特的設(shè)計(jì),完美應(yīng)對(duì)了這些挑戰(zhàn),成為接口開發(fā)、調(diào)試和測(cè)試的理想選擇。
技術(shù)架構(gòu)
WebCurl的技術(shù)架構(gòu)體現(xiàn)了"少即是多"的設(shè)計(jì)理念:
- ? 前端: 純?cè)?/span>
HTML+JS+CSS
實(shí)現(xiàn),不依賴任何第三方庫或框架,保證了極致的加載速度和運(yùn)行效率 。 - ? 后端: 僅使用Golang標(biāo)準(zhǔn)庫,沒有任何外部依賴,確保了安全性和可靠性 。
- ? 代碼精簡: 整個(gè)項(xiàng)目僅包含2個(gè)文件——
index.html
和main.go
,代碼結(jié)構(gòu)清晰,易于理解和維護(hù) 。
這種架構(gòu)使得WebCurl的編譯產(chǎn)物僅為一個(gè)約14MB的單一二進(jìn)制文件(包含前端頁面),真正實(shí)現(xiàn)了"一次編譯,到處運(yùn)行"的跨平臺(tái)體驗(yàn) 。
功能特點(diǎn)
核心功能
- ? 網(wǎng)頁版Postman體驗(yàn):無需安裝客戶端,瀏覽器即用,界面美觀,功能豐富。
- ? HTTP 請(qǐng)求轉(zhuǎn)發(fā):接口通過
/api/forward
接口將請(qǐng)求參數(shù)提交給前端,立即代為轉(zhuǎn)發(fā)并返回結(jié)果,突破瀏覽器跨域限制。 - ? 支持HTTP CONNECT代理隧道:支持HTTP CONNECT方式,可作為HTTPS/SSH等協(xié)議的代理隧道,適用于curl、ssh、ncat等工具的代理轉(zhuǎn)發(fā)。
- ? 多種請(qǐng)求體支持:支持
form-data
(含多文件上傳)、x-www-form-urlencoded
、json
、text
、xml
、binary
。 - ? 請(qǐng)求頭自定義:支持任意請(qǐng)求頭。
- ? 文件上傳/下載:支持多文件上傳,響應(yīng)內(nèi)容可直接下載。
- ? 請(qǐng)求重試與超時(shí):可配置重試次數(shù)、重試間隔、超時(shí)時(shí)間。
- ? SSL 驗(yàn)證與重定向:選擇是否驗(yàn)證 SSL 證書、是否自動(dòng)跟蹤重定向。
- ? 接口功能豐富:接口歷史、接口集合、變量替換、全局請(qǐng)求頭、導(dǎo)入導(dǎo)出等。
- ? 命令行靈活配置:支持自定義監(jiān)聽地址、端口、靜態(tài)目錄、日志、SSL證書等。
- ? 最大輕量:單個(gè)二進(jìn)制文件,體積僅約10M,部署、遷移、搬運(yùn)方便。
- ? 無依賴、易運(yùn)維:不需要數(shù)據(jù)庫、不需要外部依賴,直接運(yùn)行。
- ? 跨平臺(tái)/信創(chuàng)兼容:支持主流網(wǎng)絡(luò)及國產(chǎn)軟硬件平臺(tái),適合信創(chuàng)環(huán)境、內(nèi)網(wǎng)、離線等特殊場(chǎng)景。
- ? 網(wǎng)絡(luò)協(xié)議支持:完美支持 IPv4 和 IPv6 網(wǎng)絡(luò)協(xié)議,適應(yīng)各種網(wǎng)絡(luò)環(huán)境。
- ? 實(shí)時(shí)通信支持:初步支持WebSocket和SSE(Server-Sent Events),滿足實(shí)時(shí)數(shù)據(jù)需求。
EchoServer 調(diào)試服務(wù)
- ? 智能請(qǐng)求回顯:自動(dòng)解析并回顯請(qǐng)求的URL、方法、請(qǐng)求頭、請(qǐng)求體(文本、表單、文件、二進(jìn)制等)。
- ? 靈活的響應(yīng)控制:支持通過自定義請(qǐng)求頭或URL參數(shù)靈活控制響應(yīng)內(nèi)容和行為。
- ? 多種響應(yīng)格式:支持JSON、XML、Text等多種響應(yīng)格式。
- ? 響應(yīng)延遲控制:可自定義響應(yīng)延遲時(shí)間,模擬網(wǎng)絡(luò)延遲場(chǎng)景。
- ? 下載響應(yīng)控制:支持將響應(yīng)內(nèi)容作為文件下載。
- ? 流式通信支持:SSE和WebSocket接口支持流式數(shù)據(jù)本體。
- ? 自定義數(shù)據(jù)隊(duì)列:支持默認(rèn)響應(yīng)數(shù)據(jù),實(shí)現(xiàn)自定義流式自適應(yīng)。
- ? 健壯性保障:內(nèi)置恐慌恢復(fù)機(jī)制,防止服務(wù)崩潰。
靜態(tài)文件服務(wù)器
- ? 完整文件服務(wù):類似Nginx的靜態(tài)文件服務(wù)器功能,支持所有常見文件類型。
- ? 豐富的MIME支持:自動(dòng)識(shí)別HTML、CSS、JS、圖片、音頻、視頻、字體等文件類型。
- ? 安全防護(hù):防止路徑攻擊,確保文件訪問安全。
- ? 高性能:支持大文件傳輸,內(nèi)置存儲(chǔ)控制。
- ? CORS支持:內(nèi)置跨域資源共享支持,適合前端開發(fā)。
- ? 移動(dòng)接口:支持移動(dòng)設(shè)備訪問,響應(yīng)式設(shè)計(jì)。
常用工具
- ? JWT解析:支持一鍵JWT Token,快速查看Payload信息,即可調(diào)試鑒權(quán)接口。
- ? UUID生成:支持生成標(biāo)準(zhǔn)UUID,方便接口測(cè)試與數(shù)據(jù)填充。
- ? 時(shí)間轉(zhuǎn)換:支持毫秒/秒時(shí)鐘與日期時(shí)間的相互轉(zhuǎn)換,適配多個(gè)場(chǎng)景。
- ? Base64編碼解碼:支持Base64字符串的編碼與解碼,其次處理二進(jìn)制與文本數(shù)據(jù)。
- ? Token生成器:支持自定義規(guī)則生成隨機(jī)Token,適合接口測(cè)試、模擬登錄等場(chǎng)景。
快速開始
安裝與運(yùn)行
從GitHub倉庫下載預(yù)編譯的二進(jìn)制文件
# 編譯
go build -o WebCurl main.go
# 也可以使用 sh build.sh 命令
# 運(yùn)行(默認(rèn) 0.0.0.0:4444,內(nèi)嵌前端頁面)
./WebCurl
# 瀏覽器訪問
http://localhost:4444
命令行選項(xiàng)
WebCurl支持多種啟動(dòng)參數(shù)以滿足不同需求:
例如,要在9000端口運(yùn)行并啟用HTTPS:
./webcurl -p 9000 -s -c /path/to/cert
界面預(yù)覽


開源地址
https://github.com/o8oo8o/WebCurl
該文章在 2025/7/28 12:24:28 編輯過