curl发送post请求带Json参数

curl发送post请求带Json参数
1:linux下执行curl命令发送post请求

curl -X POST -H "Content-Type: application/json" -H "referer:http://localhost" http://localhost:8080/test/file/import -d '{"param":"20210608"}'

H表示请求头,-d表示参数

参考案例:

curl -v http://localhost:8080/JsonSendSms -d '{"mobile":"100000000000","password":"111111111","smsID":"12345678999","smscontent":"this is a test2"}' -X POST -H "Content-Type: application/json" -k

说明:

linux下-d后面的参数需要用单引号‘引起来 ,windows下不需要单引号
2:linux下shell脚本中传递动态参数

  param="20210608";
  curl -X POST -H "Content-Type: application/json" -H "referer:http://localhost" http://localhost:8080/test/file/import -d '{"param":"'${param}'"}'

说明:

shell脚本中变量赋值符左右不能有空格,即上面param变量等号=左右不能有空格。
若参数过长则放到文件中
步骤一:在执行路径下,新建文件如param.json

说明:文件中的内容为json参数内容,无需进行转义

步骤二: 执行命令

curl -X POST -H "Content-Type: application/json" -H "referer:http://localhost" http://localhost:8080/test/file/import -d @param.json

linux下shell脚本中动态传递参数
前言:
我们经常会写shell脚本,并放到linux系统中,执行shell脚本中的命令,远程调用某个http请求,下面讲解一下如何调用,及在shell脚本中如何动态传递参数

步骤一:创建一个task.sh文件,代码如下

task1() {
  echo "**********demo1**********"
  curl -X POST -H "Content-Type: application/json" -H "referer:http://localhost" http://localhost:8080/file/import -d '{"param":"'$2'"}'
}

task2() {
  echo "********** demo2 **********"
  curl -X POST -H "referer:http://localhost" http://localhost:8080/file/export
}


case "$1" in
	"1") task1 $1 $2;;
    "2") task2;;
esac

步骤二:在linux中进入到task.sh同一目录下,然后执行命令。
示例1:

./task.sh 1 demo.jpg

示例2:

./task.sh 2

下面是shell脚本中读取参数的其中一种方式:
采用 $0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0 获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${10},${11}....才能获取到参数,但是一般很少会超过10个参数的情况。

点赞