解决了

当通过API执行运行簿时,错误"'NoneType'对象没有'get'属性"

  • 2021年11月24日
  • 7回复
  • 54岁的观点

Userlevel 1
徽章 +1

嗨。

我了这篇文章这篇文章我正在正确地发送参数,并且我的运行簿中的变量被设置为Runtime。

我也做了一个POST调用,但我仍然得到一个内部服务器错误的消息“'NoneType'对象没有属性'get'”。

以下是我的电话内容:


"规范":{
“参数”:(

“名称”:“电子邮件”,
“价值”:“mema@tlke.se”
},

“名称”:“displayName”,
“价值”:“妈妈MEmem”
},

“名称”:“用户名”,
“价值”:“momemom”
},

“名称”:“帐号名称”,
value: MAM, MSM 1
},

“名称”:“ticketID”,
“价值”:“794”





运行簿有多个任务,这会改变我向它发送参数的方式吗?

谢谢。

图标

最佳答案JoseNutanix2021年12月3日14:00

Hi Martin,<\/p>

No worries, two things here. With just the first one is enough to make it work, but you can even simplify more:<\/p>

  1. You have to set the Context-Type to application\/json<\/strong>\u00a0. With this is enough<\/li>\t
  2. As a bonus to simplify, you can get rid of the header for Cookie. With Authorization is enough.\u00a0<\/li><\/ol>","className":"post__content__best_answer"}">
查看原始

7回复

Userlevel 4
徽章 +5

嗨,马丁,

不确定这是否会是问题,但您的JSON有效负载不合规。你必须去掉负载末尾的两个花括号。

关于任务的数量,这并不重要。如果你仍然有问题,用一个任务和一个变量做一个简单的运行簿来练习和检查它是否适合你。一旦你确认了,就转向失败的地方。

Userlevel 1
徽章 +1

你好何塞。

哎!我用Prettier检查了JSON的语法,没有得到任何错误,所以我只是假设它是合适的。这就是我假设的后果。

不幸的是,这没有帮助,我仍然得到相同的错误。我将用一个超级简单的运行簿来尝试一下。

谢谢你的快速回复。

Userlevel 1
徽章 +1

你好何塞。

我使用超级简单的运行簿并不重要。我甚至复制了你画的那个这篇文章,还是会得到相同的误差。: /

是否有一个日志在冷静,我可以检查得到更多的信息?

Userlevel 4
徽章 +5

嗨,马丁,

你能把你的请求以curl格式粘贴到这里吗?请随意匿名处理任何敏感信息。

Userlevel 1
徽章 +1

你好何塞。

抱歉回复晚了。这是curl请求,减去一些潜在的敏感内容:

curl——location——request POST 'https://[prism-central-server]:9440/api/nutanix/v3/runbooks/93fe2c76-4562-45bc-e34e-20a727e33e12/run' \
——header 'Content-Type: application/*' \
——header 'Authorization: Basic (removed)' \
——header 'Cookie: NTNX_IGW_SESSION=(已移除)' \
——data-raw”{
"规范":{
“参数”:(

“名称”:“VAR_TEST”,
"value": "这是一个测试"



} '

Userlevel 4
徽章 +5

嗨,马丁,

不用担心,这里有两件事。只使用第一个就足够了,但你还可以进一步简化:

  1. 您必须将上下文类型设置为application/json.这样就足够了
  2. 为了简化,您可以去掉Cookie的头文件。有了授权就足够了。
Userlevel 1
徽章 +1

啊,谢谢!

不确定我从哪里得到的应用程序/*头(我可能复制了一个请求,没有注意到),cookie是从Postman -我没有在我的实际请求。

非常感谢您的帮助!

回复


Baidu