一、参数说明
格式: curl -H 请求头 -d 请求体 -X POST 接口地址
参数 | 内容 | 格式 |
---|---|---|
-H(- -header) | 请求头 | “Content-Type: application/json” |
-d | 请求内容 | “{“remote_host”: “10.163.215.41”, “service_name”: “telegraf”}” |
-u(- -user) | Authorization(账号密码) | admin:password |
-X | 请求协议 | POST、GET、PUSH、DELETE、PUT、OPTIONS、HEAD |
二、示例说明
1.application/json
-vvv 输出详细信息 -u参数是账号密码, -X 参数是请求协议,-H参数是请求头,-d 参数值是 JSON 字符串,请求头 Content-Type: application/json 指定发送内容的格式。
$ curl -vvv -u admin:password -X POST -H "Content-Type:application/json" http://10.184.2.72:9080/api/v2/job_templates/195/launch/ -d "{\"remote_host\": \"10.163.215.41\", \"service_name\": \"telegraf\"}"
2.把文件内容作为要提交的数据
如果要提交的数据不像前面例子中只有一个或两个键值对,数据比较多,都写在命令行里很不方便,也容易出错,那么可以把数据内容先写到文件里,通过 -d @filename 的方式来提交数据。这是 -d 参数的一种使用方式,所以前面用到 -d 参数的地方都可以这样用。
实际上就是把 -d 参数值写在命令行里,变成了写在文件里。@ 符号表明后面跟的是文件名,要读取这个文件的内容作为 -d 的参数。
例如,有一个 JSON 文件 data.json 内容如下:
{
"extra_vars": {
"remote_host": "192.168.100.70",
"remote_user": "administrator",
"remote_pwd": "jdjk@redhat2022",
"service_name": "telegraf"
}
}
就可以通过
$ curl -vvv -X POST -H "Content-Type:application/json" --user admin:password http://192.168.2.66:808/api/v2/job_templates/195/launch/ -d @data.json
来提交数据。
上面post请求用curl传递参数(Auth admin:password)
$ curl -vvv -u admin:password -X POST -H "Content-Type:application/json" http://192.168.2.66:808/api/v2/job_templates/195/launch/ -d "{\"extra_vars\": {\"remote_host\": \"192.168.100.70\", \"remote_user\": \"administrator\", \"remote_pwd\": \"jdjk@redhat2022\", \"service_name\": \"telegraf\"}}"