我想在网关脚本中读取APIC Invoke 策略返回的XML中的特定值(来自SOAP服务)。
我搜索过高低。我已经通过搜索尝试过了。结果:我惨败。
我以为 apim.readInputAsXML(function(error,xmlNodelist))是答案,但是当我意识到我正在读取API的输入时感到困惑。得出的结论是,我正在处理的“ xmlNodeList”实际上是由“ readInputAsXML”创建的(不是我以为我是作为参数传递的那个)Duh!我想“ input”一词会让它放弃。
我找到了'readAsXML()',但是找不到它所处理的对象类型。
var xmlNodeList = apim.getvariable('response.body') 一开始似乎起作用,类型为“对象Nodelist”,与使用“ readInputAsXML”时相同。
但是,“ xmlNodelist.item(0)”返回的对象是blob(类型= 13)。这与“ readInputAsXML”相反,后者是一个名为“ Envelope”的节点。
任何人都可以提供解释或为我提供参考吗?
顺便说一句,这是APIC 2018.3.7
答案 0 :(得分:0)
我遇到了类似的情况。 api中的响应很可能没有标题(内容类型),因此apiс不知道如何解析它。我建议对api的响应附带内容类型标头。要访问消息正文,请使用上下文变量message.body
,该上下文变量在调用之前包含请求,在响应之后。