jenkins - 如何在 Jenkins Slave 的 POST 请求中正确使用变量
问题描述
这是我的 POST 请求。
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
解决方案
要在 POST 命令中替换 JSON 中的变量,您需要执行以下操作:
"'"${variableName}"'"
单引号内的双引号在双引号内。所以它看起来像这样:
curl -X POST www.example.com -d '{"country": "city","province":"'"${variableName}"'"}'
推荐阅读
- c++ - 请解释 C++ ABI
- vba - 如何使用后期绑定 vba 将 word 中最后粘贴的特殊图片的 wrapformat.type 更改为 wdWrapTopBottom
- mongodb - 相同的查询在 MongoDB 和 Cosmos DB 中表现不同
- python - 过滤 NoneType 后的 Python 错误 - TypeError:“NoneType”类型的参数不可迭代
- mysql - 应用 LOWER() MySQL 时从表中消除重复项
- java - 使用 java 调用 selenium 点击事件
- java - 如何创建具有多个关键参数值的查询参数主体
- python - Scrapy - 将嵌套字典生成到 JSON 文件 - 不起作用
- eclipse - Eclipse WindowBuilder设计面板显示问题
- json - Excel JSON VBA解析 - 确定数组是否为空