在工作中会经常使用的 curl 进行接口测试这里记录一下测试的命令.
在 windows & linux 系统下发送JSON数据时要注意(Windows 下):
- 单引号要改成双引号
- JSON字符串中的双引号
"
要加\
转义 &
符号需要加\
转义- JSON 字符串请求加
-H "Content-Type:application/json"
- windows 系统中的换行符为
CR LF
;Mac中的换行符为LF
;Linux 系统中的换行符为CR
# 修改前
curl --url "http://localhost:8080/sync?&account=abc"
# 修改后:
curl --url "http://localhost:8080/sync?\&account=abc"
# 修改前
curl -l -H "Content-Type:application/json" -H "Accept:application/json" -X POST -d '{"status":"STARTED"}' http://localhost:8080/sync
# 修改后
curl -l -H "Content-Type:application/json" -H "Accept:application/json" -X POST -d "{\"status\":\"STARTED\"}" http://localhost:8080/sync
注意在 bash 中,如果请求的 json字符串是用单引号括起来的话,字符串中的双引号不需要进行转义,但如果请求的 json 字符串是用双引号括起来的话,字符串中的双引号就需要转义了.
几个感觉比较有用的选项:
-v, --verbose Make the operation more talkative
-X, --request COMMAND Specify request command to use
--resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
-H --header LINE Pass custom header LINE to server (H)
-d --data DATA HTTP POST data (H)
--data-raw DATA HTTP POST data, '@' allowed (H)
--data-ascii DATA HTTP POST ASCII data (H)
--data-binary DATA HTTP POST binary data (H)
--data-urlencode DATA HTTP POST data url encoded (H)
--delegation STRING GSS-API delegation permission
--digest Use HTTP Digest Authentication (H)
-I, --head Show document info only
-O,