问题:Shell脚本逐行读取文本,字符串分割,Curl发送Post请求Json格式等相关问题
在linux中使用curl发送一个post请求时,带有json的数据,在发送时发现json中的变量没有解析出来:
curl -d '{"Pin": "${line}"}' -H"tp-app-id:publicclouds" -H"tp-sig:e26fe2c1924d9b4d86d19145434e3a5e" -H"tp-ts:14x6204133" -H"Content-Type:application/json" http://localhost:8070/alarm/activityPush
错误提示:
{"Code":1, "Msg":"invalid character '$' looking for beginning of value"}
这与json传数据的单引号 ('') 有关,shell脚本中('')内的字符串都只能原样输出。
解决方案,在数据上再加上单引号('') :
curl -d '{"Pin": "'${line}'"}' -H"tp-app-id:publicclouds" -H"tp-sig:e26fe2c1924d9b4d86d19145434e3a5e" -H"tp-ts:14x6204133" -H"Content-Type:application/json" http://localhost:8070/a