Curl GET 请求未在 body 中提供任何输出

Curl GET request is not giving any output in body

通过 Postman,我使用的 Api 是:-

https://myCertManager.com/api/pik/restapi/MyCerts?INPUT_DATA={"operation":{"details"{"Cert_Name":"cert1"}}}

在 header "AUTHTOKEN: XXXX-XXXX-XXXX-XXXX"

中使用 authtoken

当我通过邮递员发送获取请求时,我在响应中得到了我的证书body,这是正确的

现在我需要通过 curl 命令获取这个证书,所以我创建了这两个命令,但是当我执行它们时它们连接到服务器但是响应的 body 为空。

curl -g -k -v -X GET https://myCertManager.com/api/pik/restapt/MyCerts?INPUT_DATA={"operation":{"details"{"Cert_Name":"cert1"}}} -H "AUTHTOKEN: XXXX-XXXX-XXXX-XXXX"

curl -k -v -X GET https://myCertManager.com/api/pik/restapt/MyCerts -H "AUTHTOKEN: XXXX-XXXX-XXXX-XXXX" -d "INPUT_DATA={"操作":{"详细信息"{" =32=]":"cert1"}}}"

在 postman 中,如果它正常工作,您可以通过单击 [角落] 右侧的代码按钮生成等效的 curl 命令,它将为您创建 curl 代码片段

问题是因为 GET 参数不支持 -d 参数。所以这种代码永远行不通。

curl -k -v -X GET https://myCertManager.com/api/pik/restapt/MyCerts -H "AUTHTOKEN: XXXX-XXXX-XXXX-XXXX" -d "INPUT_DATA={"operation":{"details"{"Cert_Name":"cert1"}}}"

其次,GET 参数仅通过 url 本身发送数据,因此 INPUT_DATA 需要像这样 URL 本身

curl -g -k -v -X GET https://myCertManager.com/api/pik/restapt/MyCerts?INPUT_DATA={"operation":{"details"{"Cert_Name":"cert1"}}} -H "AUTHTOKEN: XXXX-XXXX-XXXX-XXXX"

但是 URL dosent 支持大括号和引号 {} "" 而我所做的是将 INPUT_DATA 转换为 URL 格式。所以实际的工作代码是这个。

curl -g -k -v -X GET https://myCertManager.com/api/pik/restapt/MyCerts?INPUT_DATA=%7B%22operation%22%3A%7B%22details%22%7B%22Cert_Name%22%3A%22cert1%22%7D%7D%7D -H "AUTHTOKEN: XXXX-XXXX-XXXX-XXXX"