curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
不带有任何参数时,curl 就是发出 GET
请求。
curl www.sina.com
上面的命令向wwww.sina.com
发出GET
请求,服务器返回的内容会在命令行输出。
参数
-H/ --header
-H参数添加 HTTP 请求的标头。
-L/ --loaction
-L参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
-v/ --verbose
-v参数输出通信的整个过程,用于调试。
-X/ --request
-X参数指定 HTTP 请求的方法。
curl -X POST www.sina.com
上面的命令向www.sina.com
发送post请求。
-d
-d
参数用于发送 POST
请求的数据体。
使用-d参数以后,HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded
。并且会自动将请求转为 POST
方法,因此可以省略-X POST
。
实例
向www.sina.com
发送POST请求
curl --location --request POST 'www.sina.com'
--header 'Content-Type: application/json'
--data-raw '{
"secretKey": "funds",
"startIndex": 0,
"pageSize":30
}'
案例二:
read -p "PLS input your MSISDN:" msisdn
time_stamp=`date`
requestId=`date +%s`
echo $time_stamp
body='{"msisdn":"'$msisdn'","MSISDN":"'$msisdn'","requestId":"'$requestId'","contentType":"1","smsContent":"Test message sent at '$time_stamp'","token":"nRJ33ltcSagO","fromUrl":"1"}'
key=$body'aDACYgA8fCC39xVqtCtfhpJplfhtyjrhgsdgfsQzEgMK9'
md5Sum=`echo -n $key|md5sum|cut -d ' ' -f1`
Curl="curl --location --request POST 'http://192.168.1.1/submitSMS' --header 'Content-Type: application/json' --header 'md5Sum: "$md5Sum"' --data '"$body"'"
echo $Curl
eval $Curl