curl:没有为restful api指定URL

时间:2016-07-25 09:03:28

标签: bash rest curl

我被要求通过Unix环境调用一个restful api。我的命令中有错误,所以我有打击问题吗?

我已经尝试过查看curl --help,但我能找到的东西可能有助于传递param密钥对。能举例说明如何调试这样的api调用吗?

$ curl -d param1=xxx&param2=yyy -X POST https://restful_api_path/lifecycle/v1/resource_node
[1]     10276
[2]     10277
-ksh: -X: not found [No such file or directory]
[2] +  Done                    curl -d param1=xxx&param2=yyy -X POST https://restful_api_path/lifecycle/v1/resource_node
$ curl: no URL specified!
curl: try 'curl --help' or 'curl --manual' for more information

干杯

3 个答案:

答案 0 :(得分:9)

您需要将参数括在单引号或双引号中。 e.g。

curl -d 'param1=xxx&param2=yyy' -X POST https://restful_api_path/lifecycle/v1/resource_node

这是因为BASH中的&运算符用于表示该命令应该继续在后台运行,因此如果你想要一个文字符号,它必须被引用或转义。

答案 1 :(得分:4)

我认为你需要在引用参数中添加双引号:

curl -d "param1=xxx&param2=yyy" -X POST https://restfulurl/lifecycle/v1/resourcenode

P.S。 在Windows上,您需要使用双引号,而不是单引号。但在Unix中,它支持引用参数的双引号和单引号。 所以下面的cmd也可以:

curl -d 'param1=xxx&param2=yyy' -X POST https://restfulurl/lifecycle/v1/resourcenode

答案 2 :(得分:-2)

envsubst <$ WORKDIR / migrate-storage / incident.json | curl -X POST -H“内容类型:应用程序/ json” $ FUNCTION_URL -d @-