「開發利器」命令行請求,還得看革 curl 命的 httpie

作者:侯樹成;
來源:Tomcat那些事兒
「開發利器」命令行請求,還得看革 curl 命的 httpie


WEB應用開發或者測試的時候,總免不了需要發送 HTTP 請求。

首先請你想一下,我們要發送一個HTTP請求的時候,腦海中出現的是怎樣一種順序呢?

我猜,大概和HTTP規範裡的寫法也差不了太多。基本會是:我要發送一個 GET/POST 請求到 XX網站。 傳X,Y,Z這幾個參數。或者是我要發XX網站發送X,Y這幾個參數,上傳Z文件之類的。

這種時候,你一般是用什麼工具測試呢? Postman,Curl?

啊哈,我一般也是用這兩個工具。

我想大家基本類似。圖形界面的工具一般用 Postman, 命令行工具,則會使用 curl。不過話說回來,curl命令除了個別的幾個參數,大部分都記不住。經常都是用到的時候現去查。

後來在 Spring 大會上,看幾個演講者都在使用幾個不錯的命令行工具。其中進行HTTP 請求測試的工具是個名為「HTTP派」的工具。最近查到了,就是下面這個: 「HTTPie」,分享給大家。

這是個什麼工具呢?

官網:https://httpie.org/

官網介紹的時候,還貼心的把發音都給加上了「aitch-tee-tee-pie」。

官網概括的是這樣一句話:

a command line HTTP client with an intuitive UI, JSON support, syntax highlighting, wget-like downloads, plugins, and more。

特點如下:

富有表現力,語法直觀

格式化和帶彩色的終端輸出

內置對 JSON 的支持

支持表單和文件上傳

支持 HTTPS、代理以及認證

任意請求數據

自定義 headers

持久化 sessions

類似 Wget 的下載

支持 Linux, Mac OS X 和 Windows 系統

支持插件

「開發利器」命令行請求,還得看革 curl 命的 httpie


回到前面的場景,我們通過命令行發送一個請求的時候,在 HttpPie 裡異常簡單。

http GET localhost:8080


即可。

我們看到,整個用起來,很符合我們語言描述的習慣。發送請求,要使用的HTTP 方法, 目標地址 傳遞參數等等。

比如我們要發送的是 POST 請求,並且帶參數,那直接這樣寫

http POST abc.com/test abc=def userid=123


這樣就給abc.com/test 發了一個 POST 請求,帶了兩個參數: abc 和userid。

而且,更有趣的是,這兩個參數默認會被以application/json的形式傳遞,我們不再需要將所有的參數整合成json串,也不需要顯式的指點ContentType。

如果我們是在本地調試,那更簡單了。

直接執行 http :8080/context 就把請求發到了應用上。連 localhost 都省了。

更方便的是,你想把本地的一個txt文件或者JSON文件做為參數內容傳遞,那直接在參數裡寫成這樣即可

[email protected]

要把JSON 請求改成 form 提交,也很簡單, http -f 。增加一個 「-f」的選項就實現了。

你說頁面上有安全驗證,那也難不倒它。 我們以測試 tomcat 的 manager 應用為例,

http -a tomat:tomcat :8080/manager/html


-a 指定了要進行BASIC認證。

用戶名:密碼 就完成了認證,著實簡單了不少。

如果嫌輸出的內容多,你只關心header或者body,那加個參數就OK,比如在請求中加-h 代表輸出header信息, -b就表示輸出 body的信息。

要下載一個文件,也是 So easy:

http --download https://github.com/jkbrzt/httpie/archive/master.tar.gz


自己本地操作想要實驗一下,也不需要自己寫 Demo。 啟動起來 Tomcat,自帶的 manager 應用可以驗證 BASIC 認證, examples 裡可以驗證 POST 請求,from 提交等等。

看了半天,想不想試試?

安裝也簡單,在各個操作系統上安裝都不難。

從名字裡大概也聽的出來,Pie 和 py 一個音,所以這貨是基於python 的,Windows 平臺安裝的時候直接通過python 的 pip 安裝 httpie 就行。

Linux/Mac 我想更難不倒你。 brew/yum 這類命令更是直達目標。

不想安裝嚐個鮮? 官網也提供了一個在線的工具:

https://httpie.org/run 訪問之後就是個在線的Linux 命令行,直接就能上手操作了。


分享到:


相關文章: