看 HTTP 和 HTTPS API 服務封包參數方法
最近程式測試API,有時候好奇程式傳出去內容是否跟 Postman 一樣,但是 DEBUG 時候真的不方便。最近在想有什麼方法(或工具)可以做到?
之前有看到有用 SSLKEYLOGFILE
可以用 Wireshark 解封包。深入理解 TLS/SSL 安全加密協定
雖然 Java 也有看到類似方法,但是要特別設定 jSSLKeyLog,還要安裝 Wireshark 軟體,所以覺得很麻煩?
最近看有沒有比較簡單方式測試?稍微爬一下文整理
HTTP test server accepting GET/POST requests - Stack Overflow
裡面看到 socat 大法最方便,可看封包又能轉傳!
Httpbin
|
|
但這點在程式直覺看結果還是很不方便
Post Test Server V2
有 http , https 方式接收資料,還算不錯。但沒有自己架設版本
nc
推薦使用這個指令,簡單好用。不知道 socat 也能不能做到這種事情,還能順便轉送出去封包?XD(下面有實作出來)
最大缺點應該就是不能 https
|
|
socat
超級推薦使用這個指令,可看到資料,又可以推送出去,不是很棒嗎!!連 https 都能搞定
|
|
|
|
這邊加 verify=0
是不能檢查憑證,這樣可以用瀏覽器看,但網站有做 Host 驗證的話,可以設定瀏覽器 Header設定 Host ,找ModHeader - Chrome 線上應用程式商店就能做到,不然就是改 Host檔案。這個是參考 Traefik 那篇(在 Raspberry PI 架設 Traefik 初體驗 | 程式狂想筆記)
相對,API 程式要加 Header,不然就是設定 Host 檔案,目前沒有找到 socat 修改 Header 方法。
參考來源: SSH over SSL, episode 2: replacing proxytunnel with socat
webhook.site
Webhook.site - Test, process and transform emails and HTTP requests
之前 line webhook 時候有用這個測試,非常好用。缺點只能用 https …,這算缺點嗎?(XD)
我要用這個測試 Java 8 憑證不認得這個網站憑證…,官方也有docker
自架服務,不過我就沒有嘗試。
PutsReq
也是有不錯操作,但沒有自架服務。