使用curl POST到url时定义变量

时间:2013-01-08 08:48:06

标签: shell curl

定义的正确语法是什么: $ data as:

   {\"username\":\"[$username]\",\"password\":\"[$password]\",\"webdata\": [$syntax]}" \

并将其替换为我的shell脚本

      result=$(curl -D - -k -m 10  -H "Content-type: application/json; charset=UTF-8" \
            -d "{\"username\":\"[$username]\",\"password\":\"[$password]\",\"webdata\":   [$syntax]}" \
     https://${host}/api 2>/dev/null |head -1)

1 个答案:

答案 0 :(得分:1)

我将假设bash(> = 3.0);您之前已设置$ username,$ password和$ syntax。 一个简单的选择是:

 printf -v data '{"username":"[%s]","password":"[%s]","webdata":[%s]}"' \
   "$username" "$password" "$webdata"

(curl的“-d”是隐式ASCII,如果使用任何多字节UTF-8字符,则会遇到麻烦。 使用--data-binary和/或将您的请求写入文件并加载可能更健壮 它带有“--data-binary @ request.tmp”。)