curl 模擬 GET\POST 請求,以及 curl post 上傳文件
一般情況下,我們調試數據接口,都會使用一個 postman 的工具。在命令行中,我們使用 curl 這個工具。
下面,我們來簡單的說一下,curl 的一些常見使用方法:
curl GET 請求
curl命令 + 請求接口的地址。
curl localhost:9999/api/daizhige/article
如上,我們就可以請求到我們的數據了,如果想看到詳細的請求信息,我們可以加上 -v 參數
curl localhost:9999/api/daizhige/article -v
操作結果如下圖所示:
curl POST 請求
我們可以用 -X POST 來申明我們的請求方法,用 -d (或者--data)參數,來傳送我們的參數。
所以,我們可以用 -X PUT 和 -X DELETE 來指定另外的請求方法。
curl localhost:9999/api/daizhige/article -X POST -d "title=comewords&content=articleContent"
如上,這就是一個普通的 post 請求。
但是,一般我們的接口都是 json 格式的,這也沒有問題。我們可以用 -H 參數來申明請求的 header
curl localhost:9999/api/daizhige/article -X POST -H "Content-Type:application/json" -d '{"title":"comewords","content":"articleContent"}'
so, 我們可以用 -H 來設置更多的 header 比如,用戶的 token 之類的。
同樣,我們可以用 -v 來查看詳情。
查看返回的 json 數據 - 安裝 jq 工具
- MacOS 用戶在命令行輸入如下命令安裝
brew install jq
- Ubuntu\Debian\Deepin 命令
sudo apt install jq
- CentOS\RedHat 命令
sudo yum install jq
- Arch 命令
sudo pacman -S jq
curl POST 上傳文件
上面的兩種請求,都是隻傳輸字符串,我們在測試上傳接口的時候,會要求傳輸文件。
我們用 -F "file=@__FILE_PATH__" 的請示,傳輸文件即可。命令如下:
curl localhost:8000/api/v1/upimg -F "file=@/Users/fungleo/Downloads/401.png" -H "token: 222" -v
執行結果如下圖所示:
curl 上傳多個文件、設置 cookies 命令
curl http://localhost:3000/api/v1/upload -F 'file=@/Users/fungleo/Downloads/空心五角星.png' -F 'file=@/Users/fungleo/Downloads/空心五角星.png' -H 'Cookie:token=68fed7e53110f7c4e095d932274a56ea'
1
如上,這是一個上傳多個文件的命令,和上傳單個文件是沒有什麼太大區別的,就是直接寫多個文件即可。設置 cookies 和設置普通的 header 並沒有什麼太大的區別,如果需要設置多個 cookie 值,可以用 ; 號進行分割。加上 -s | jq 後綴,返回結果就十分優雅
ctrl + r 查找歷史命令記錄
當我們在命令行執行了某條命令之後,實際上這條命令就已經被系統記錄下來了。下次想要再調用這個命令,可以方便的通過 ctrl + r 快捷鍵來進行查找。
在命令行中使用 ctrl + r 激活搜索,然後輸入關鍵詞。如下圖所示:
如果搜索出來的結果有多條,當前的這條不是你想要的,繼續按 ctrl + r 快捷鍵,可以切換搜索結果,如下圖所示:
可以看到,在不斷的切換搜索結果了。
確定了某條歷史執行命令之後,可以按 回車鍵 立即執行該命令,也可以按一下 ➡️ 右方向鍵,然後退出搜索模式,進而修改這條命令,然後繼續執行。
通過 ctrl + r 快捷鍵,可以非常方便的讓我們重複調試某些接口。
與 chrome 瀏覽器 配合,快速調試某接口
我們前端一般在瀏覽器中調試我們的開發項目,當遇到某個接口返回數據與我們預期不一致時,在瀏覽器控制檯中,我們可以看到具體的返回結果,如下圖所示
當接口修復後,想要觀察結果,通常是通過刷新頁面。如果是簡單的操作還好,如果是需要多個步驟才能到達的頁面,我相信你的心情會很不好。
這個時候,這個技巧就十分有幫助了!我們在有問題的接口名上右擊,然後點擊 Copy,再點擊 Copy as cURL 就可以把這個請求轉化爲 curl 命令,然後到命令行終端中執行即可。
參考
更多 curl 的使用方法,以及參數說明,可以在系統中輸入 man curl /curl -help來進行查看。或者,點擊 curl man 查看網頁版的介紹(https://curl.haxx.se/docs/manpage.html)
curl 模擬請求:https://blog.csdn.net/fungleo/article/details/80703365
linux 或 mac 命令行更優雅的使用 curl 命令:https://fungleo.blog.csdn.net/article/details/105794798