curl可以模拟各种请求协议向服务端发送请求,是一个很好用的接口测试命令行工具。
一、其参数说明如下
-X/--request :指定请求的方法,如 [GET|POST|PUT|DELETE|…]
-H/--header :设置请求头 ,如 "Content-Type:application/json",可以使用多个 -H
-i/--include :显示响应头
-d/--data:设置请求参数 ,如 “name=xiaoming”
-u/--user:登录之后才能调用的请求需要使用,如 “name:pwd”
-b/--cookie:使用cookie,指定cookie文件路径
二、使用例子
1、get请求
curl http://127.0.0.1:8080/getInfo?name=ming&passwd=123
curl -X GET 'http://127.0.0.1:8080/getInfo' --header 'sessionid:123456789' //设置请求头带 sessionid
curl -i --user name:pwd http://127.0.0.1:8080/getInfo //对于需要登录才能调用的接口使用 --user 登录
2、post请求
curl -d "name=ming&passwd=12345" "http://127.0.0.1:8080/getInfo" //也可用多个-d : -d "param1=value1" -d "param2=value2"
curl -i -H "Content-Type:application/json" -X POST --data '{"name": "xiaoming"}' http://127.0.0.1:8080/getInfo //json格式发送参数
curl -X POST "http://127.0.0.1:8080/getInfo" -H "Content-Type:application/json" -d ""dataparams":{ "name":"xiaoming","type":"A"}"
3、发送文件
curl http://127.0.0.1:8080/uploadFile -F "file=@D:\Users\myFile\123.txt" //通过 -F 上传指定文件
4、websocket连接
curl --include --no-buffer --header "Connection: Upgrade" --header "Upgrade: websocket" --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" --header "Sec-WebSocket-Version: 13" http://abc.xxx.com:80/connection?key=abcd
成功提示:
HTTP/1.1 101 Switching Protocols
Server: nginx
Date: Tue, 02 Jul 2018 03:22:00 GMT
Connection: upgrade
Access-Control-Allow-Origin: *
Sec-WebSocket-Accept: qGEgH3En71di5rrssAZTmtRTyFk=
Upgrade: WebSocket
关闭:
curl --include --no-buffer --header "Connection: close" --header "Upgrade: websocket" --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" --header "Sec-WebSocket-Version: 13" http://abc.xxx.com:80/connection?key=abcd