如何在Jenkins Slave中正确使用POST请求中的变量

如何在Jenkins Slave中正确使用POST请求中的变量,jenkins,post,jenkins-pipeline,jenkins-plugins,jenkins-cli,Jenkins,Post,Jenkins Pipeline,Jenkins Plugins,Jenkins Cli,这是我的发帖要求 curl -v -k -H "Content-Type:application/json" -b /tmp/zen.cookies -X POST https://${WEB_URL}/zen-data/v2/serviceInstance -d {"serviceInstanceNamespace":"${namespace}","serviceInstanceVersion":"1.3.5","createArguments":{"parameters":{"global

这是我的发帖要求

curl -v -k -H "Content-Type:application/json" -b /tmp/zen.cookies -X POST https://${WEB_URL}/zen-data/v2/serviceInstance -d 
{"serviceInstanceNamespace":"${namespace}","serviceInstanceVersion":"1.3.5","createArguments":{"parameters":{"global.icp4Data":"true","global.pvc.pvProvisioning":"NamedStorageClass","global.filebeat.output.logstashEnabled":"false","global.filebeat.output.consoleEnabled":"true","metadata.storageClass":\\"${storageclass}\\","imagePullSecrets":"ownerServiceInstanceUsername":""},"transientFields":{}}
它给了我这个错误:

{"code":400,"message":"parsing body body from \"\" failed, because invalid character 's' looking for beginning of value"}* Could not resolve host: serviceInstanceDisplayName; Unknown error
12:24:32 * Closing connection 1
12:24:32 curl: (6) Could not resolve host: serviceInstanceDisplayName; Unknown error
12:24:33 * Could not resolve host: serviceInstanceNamespace; Unknown error

我想你好像错过了一个括号,试着在最后加上
}

关于json格式的参数,请仅使用
“$storageclass”
。或者像这样:

json="{\"name\": \"$name\", \"text\": \"$Text\"}"

要在POST命令中替换JSON内的变量,需要执行以下操作:

"'"${variableName}"'"
双引号内的单引号内的双引号。 看起来是这样的:

 curl -X POST www.example.com -d '{"country": "city","province":"'"${variableName}"'"}'

此处缺少内容
“imagePullSecrets”:“ownerServiceInstanceUsername”:“
。可能是键
imagePullSecrets
的值。观察得很好,但不是。如果我硬编码变量。它很好用。我可以向你保证,一切都很好。请考虑只查看变量替换。另一个观察——您已经逃过了代码> ${SturaCasLase} /Cyto>但不是<代码> ${命名空间}。您可能不希望在发出请求时立即插入前者?但再看看错误,似乎
\\\“${storageclass}\\”
不是有效的JSON语法,因为整个值必须在双引号内。这个程序认为它是以一个“\”开头的,并抱怨?另外,我从在线搜索中得到的信息是,JSON不支持本机变量-。但有些变通方法可能适用于你,也可能不适用于你-。谢谢迪巴卡!我将在stackoverflow.com/a/48957641/8895640这个链接中尝试这个建议谢谢Akriti!我尝试使用\\,但没有尝试使用\。我试试看。