shell - Curl GET 请求未在正文中提供任何输出
问题描述
通过邮递员,我正在使用的 Api 是:-
在标头中带有 authtoken"AUTHTOKEN: XXXX-XXXX-XXXX-XXXX"
当我通过邮递员发送获取请求时,我在响应正文中获得了正确的证书
现在我需要通过 curl 命令获取这个证书,所以我创建了这两个命令,但是当我执行它们时,它们连接到服务器,但是响应的主体是空的。
curl -g -k -v -X GET https://myCertManager.com/api/pik/restapt/MyCerts?INPUT_DATA={"operation":{"details"{"Cert_Name":"cert1"}}} -H “授权: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={"operation":{"details" {"Cert_Name":"cert1"}}}"
解决方案
问题是因为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"
推荐阅读
- nginx-ingress - 如何让后端服务使用 kubernetes Nginx Ingress Controller 读取请求方案(https)
- c# - 使用 ffmpeg 录制桌面时是否可以选择特定屏幕?
- javascript - 仅复制非空单元格
- reactjs - 如何在反应中出现下拉列表中的删除按钮?
- angular - 小项目的侧边栏结构
- ios - firebase_messaging/unknown:Flutter IOS 出现未知错误
- azure-data-explorer - Kusto 加入查询 - 如何在 $left.column1 < $right.column2 上加入 2 个表
- string - Haskell 字符串/输出操作
- keras - 在 ACTION SPACE 中使用熵调试策略梯度
- azure - AKS k8s id "resourcegroup" 更改为 "resourceGroup" 并且 Terraform 强制替换 node_pool