首页 > 解决方案 > 使用 cURL 的 Cisco ACI 身份验证不起作用

问题描述

我一直在这里阅读有关使用cURL的Cisco ACI自动化的信息,并尝试遵循相同的步骤。

不幸的是,该代码不适用于 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 命令有什么问题?

注意:我没有放入-c cookie.txt这个例子,因为即使它在那里,我也会遇到同样的错误。

期望的输出

获得正确的 HTTP 200 响应,而不是 400 Bad Request ..

标签: curlpostmancisco

解决方案


您需要先登录:

curl -X POST -k https://APIC_IP_ADDRESS/api/aaaLogin.xml -d '<aaaUser name="USERNAME" pwd="PASSWORD"/>' -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

推荐阅读