博主信息
博文 110
粉丝 0
评论 0
访问量 228990
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Linux-shell-curl-put命令变量及换行问题报错和解决讲解
Coco
原创
1837人浏览过

  1. 最近在使用shell curl自动处理ETL时,需要定时触发一API,使用方式为PUT,但是多次触发均失败,命令如下:

  curl -g -i -H "Content-type: application/json" \

  -X PUT "101.201.81.101:8080/preaggregate" \

  -d

  '{"taskId":"base_analyses","aggId":"5bebf84c339e8b79dc018d","WindowId":"662401807f9198d7d5","force":true,"type":"range","dayRanges":[${startdate},${enddate}]}'

  请求结果报错

  原因:

  1.自动换行多了一个 "

  ",原因是json太长,unix会自动换行,换行发送json后,会在json内自动加上该换行符,api解析json会出错,解决该问题的办法就是先定义变量值;

  put_pre='{"taskId":"base_analyses","aggId":"5bebf84c339e8b79dc018d","WindowId":"662401807f9198d7d5","force":true,'

  2.变量使用方式不正确,json内不应该出现${startdate},${enddate}这样的变量,应该改为'xxx'${startdate}'xxx'。

  整理后的正确请求方式为:

  curl -g -i -H "Content-type: application/json" \

  -X PUT "101.201.81.101:8080/preaggregate" \

  -d

  ${put_pre}'"type":"range","dayRanges":['${startdate}','${enddate}']}'

  大家在使用过程中可能也会遇到以上问题,使用这种方式处理即可。

本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学