curl - 使用 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 ..
解决方案
您需要先登录:
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
推荐阅读
- scala - foldLeft :如果存在则添加到地图中,否则更新值
- javascript - 是否可以对 ES6 映射对象的值对象的属性进行排序?
- pandas - XGBoost 预测不适用于 AI Platform:“功能名称不匹配”
- loops - 如何使用 VECTOR 和 LOOP 用值 1 到 4 填充 4 个 SPSS 变量?
- java - 为什么 WebMvcConfigurer 覆盖方法不起作用?
- r - 如何在自定义函数中使用 ddply + summarise
- javascript - 如何从 html 或 javascript 等网页打开腻子
- android - 通知到达时如何在任何屏幕上显示自定义对话框?
- knex.js - 如何在 knex promise 中访问 koa ctx 对象?
- oracle-apex - 我如何链接这将带我到页面以及过滤器