請求訊息發送者,也就是 HTTP client,可用於開發 Web 應用、debug 與 API 測試。
瀏覽器中的 Fetch 可以送出各種 HTTP 方法;限制通常來自同源政策、CORS、憑證與瀏覽器安全模型,而不是只能發 GET/POST。命令列、桌面 client 與 Node.js 則適合不受瀏覽器頁面限制的自動化、測試與除錯。
Node.js
Node.js 是跨平台 JavaScript runtime。現代 Node 已提供基於 Web Fetch API 的內建 fetch,通常不需要再安裝舊的 HTTP client 套件。
不要使用本篇舊版的 request 套件:它已停止維護。新程式優先使用內建 fetch;需要重試、cookie jar、proxy、streaming 或更複雜連線控制時,再依需求選擇有持續維護的套件。
範例(以自己的 API endpoint 取代 https://api.example.test/register):
const response = await fetch("https://api.example.test/register", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({ email: "you@example.test", password: "use-a-test-secret" })
});
if (!response.ok) throw new Error("HTTP request failed: " + response.status);
console.log(await response.json());
這個範例清楚指定 JSON;若 server 期待 application/x-www-form-urlencoded 或 multipart,請依 API 契約使用對應 body 與 Content-Type。
Postman
然而,Node.js 與 request 多用於開發層面,
每次測試都要撰寫程式碼,還是非常麻煩的,
Postman 提供漂亮的 圖形化介面 (GUI),
藉由簡單的選擇,即可送出請求訊息 !
重點是 免費 !
重點是 免費 !
重點是 免費 !
可直接前往 官網 下載。

使用範例
同樣的,以 Postman 對 https://reqres.in/api/register,
送出 POST 請求,註冊新使用者為例:
選擇 請求方法 POST,並填寫資料酬載後 送出 :

Code
儘管如此,這並非我常用的功能,
因為 Postman 太 “漂亮” 了,讓我久久無法接受,
反而時常以功能相近的 Paw 代替。
(其實是當初犯傻了,花 1500 買它…)
Postman 的 殺手級功能 — — Tests 與 Code 才是讓我愛不釋手的原因,
透過 Code 功能,可以直接 匯出 許多語言的 程式碼 !
(包含 上述的 Node.js 以及 XHR、jQuery)

僅需再對結果做微調,即可避免打這些千篇一律的程式碼
除此之外,Postman 還能保存、組織測試內容…,
真的超方便 😭,誠心推薦 !
Insomnia
Postman 雖然好用,個人還是下 cURL 指令居多,
因為真的太 “漂亮” 了…讓我看得很煩 😵,
然而,Insomnia 的出現,讓我又跳回懶人 GUI 世界 😂。
重點也是 免費 !
重點也是 免費 !
重點也是 免費 !
可直接前往 官網 下載。

使用範例
同樣的,以 Insomnia 對 https://reqres.in/api/register,
送出 POST 請求,註冊新使用者為例:
選擇 請求方法 POST,並填寫資料酬載後 送出 :

OH! 這 UI 是如此乾淨俐落…🤤
Code
Insomnia 同樣能 匯出程式碼 !
這幾乎是現代 HTTP Client 的基本功能了 😯。
(雖然 Paw 也有,但實在好貴…😱)
選擇左方請求的下拉選項 -> Generate Code :

圖中的 cURL 是我慣用的終端機指令,
詳細用法可參閱 man page,
或以 Postman、Insomnia 的 Code 功能匯出!
若不用 cmd-line 的話,Insomnia 是我目前的首選 !
經濟能力允許的話,也能升級 付費版 喔 !
HTTP Prompt
最後,要大推 PTT 神人 eliang 所寫的,
建構在 HTTPie 和 prompt_toolkit 上的 互動式命令列 HTTP Client — — http-prompt
具有自動補完 和 語法高亮功能 !
https://asciinema.org/a/96613.js
詳情請見 PTT。