我被要求通过Unix环境调用一个restful api。我的命令中有错误,所以我有打击问题吗?
我已经尝试过查看curl --help,但我能找到的东西可能有助于传递param密钥对。能举例说明如何调试这样的api调用吗?
$ curl -d param1=xxx¶m2=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¶m2=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
干杯
答案 0 :(得分:9)
您需要将参数括在单引号或双引号中。 e.g。
curl -d 'param1=xxx¶m2=yyy' -X POST https://restful_api_path/lifecycle/v1/resource_node
这是因为BASH中的&
运算符用于表示该命令应该继续在后台运行,因此如果你想要一个文字符号,它必须被引用或转义。
答案 1 :(得分:4)
我认为你需要在引用参数中添加双引号:
curl -d "param1=xxx¶m2=yyy" -X POST https://restfulurl/lifecycle/v1/resourcenode
P.S。 在Windows上,您需要使用双引号,而不是单引号。但在Unix中,它支持引用参数的双引号和单引号。 所以下面的cmd也可以:
curl -d 'param1=xxx¶m2=yyy' -X POST https://restfulurl/lifecycle/v1/resourcenode
答案 2 :(得分:-2)
envsubst <$ WORKDIR / migrate-storage / incident.json | curl -X POST -H“内容类型:应用程序/ json” $ FUNCTION_URL -d @-