Curl Cisco ACI身份验证,不使用';行不通

Curl Cisco ACI身份验证,不使用';行不通,curl,postman,cisco,Curl,Postman,Cisco,我一直在阅读有关Cisco ACI Automation withcURL的文章,并尝试遵循相同的步骤 不幸的是,这段代码对cURL不起作用。我得到以下错误 C:\>curl -X POST -k https://x.x.x.x/api/aaaLogin.json -d '{"aaaUser":{"attributes":{"name":"user007","pwd":"password007"}}}' {"totalCount":"1","imdata":[{"error":{"attr

我一直在阅读有关Cisco ACI Automation withcURL的文章,并尝试遵循相同的步骤

不幸的是,这段代码对cURL不起作用。我得到以下错误

C:\>curl -X POST -k https://x.x.x.x/api/aaaLogin.json -d '{"aaaUser":{"attributes":{"name":"user007","pwd":"password007"}}}'
{"totalCount":"1","imdata":[{"error":{"attributes":{"code":"400","text":"JSON parsing failed - incomplete attribute value at line: 1"}}}]}
C:\>
然而,当我使用Postman测试相同的代码时,它就像一个符咒。curl命令有什么问题

注意:我没有把
-ccookie.txt
放在这个例子中,因为我得到了相同的错误,即使它在那里

所需输出


获得正确的HTTP 200响应,而不是400错误请求。

您需要首先登录:

curl -X POST -k https://APIC_IP_ADDRESS/api/aaaLogin.xml -d '<aaaUser name="USERNAME" pwd="PASSWORD"/>' -c cookie.txt
curl-X POST-khttps://APIC_IP_ADDRESS/api/aaaLogin.xml -d'-c cookie.txt
APIC控制器返回存储在cookie中的令牌。它将持续5分钟。您必须使用此cookie运行以下任何REST API

例如,创建新Tenat、新应用程序配置文件和新EPG的REST API将如下所示:

curl -b cookie.txt -X POST -k https://APIC_IP_ADDRESS/api/node/mo/uni.xml -d '<polUni> <fvTenant name="TENANT-NAME" descr="TENANT-NAME-DESC" status=""> <fvAp name="APP-PROF-NAME">   <fvAEPg name="NEW-EPG-NAME" > </fvAEPg> </fvAp> </fvTenant> </polUni>' -c cookie.txt
curl-bcookie.txt-xpost-khttps://APIC_IP_ADDRESS/api/node/mo/uni.xml -d'-c cookie.txt

您需要转义双引号(“)

事实上,您甚至可以仅对用户和密码使用双引号:

C:\>curl -X POST -k https://x.x.x.x/api/aaaLogin.json -d '{aaaUser:{attributes:{name:\"user007\",pwd:\"password007\"}}}'
您需要转义\“的原因是,curl将在构造和发送POST消息时删除它们。这是一个捕获,从中共享:


参考资料:

您是否缺少
-c cookie.txt
部分?即使使用
-c cookie.txt
也会出现相同的错误
C:\>curl -X POST -k https://x.x.x.x/api/aaaLogin.json -d '{aaaUser:{attributes:{name:\"user007\",pwd:\"password007\"}}}'