我正在使用IBM API Connect和IBM DataPower 2018。
我有一个SOAP Web服务,我需要通过捕获请求\响应有效负载对其进行一些自定义的日志记录。
当服务返回有效的XML甚至SOAP异常时,我可以轻松地处理此类情况,并将请求\响应有效负载保存在单独的DB模式中以用于操作目的。
我通过从后端返回非XML响应(例如“ ABCDEFGHI ....”)来更新响应有效负载。 当我通过数据功能调用此服务时,它将返回明确的响应。
<errorResponse>
<httpCode>400</httpCode>
<httpMessage>Bad Request</httpMessage>
<moreInformation>Invalid XML payload received.</moreInformation>
</errorResponse>
但是我无法捕获message.body有效负载,在我的情况下为“ ABCDEFGHI ..”,apim.getvariable('message.body')不返回任何内容。
我的问题: 如何通过使用网关脚本捕获SOAP服务的无效响应有效负载(XML不好)?
答案 0 :(得分:0)
您不能...,因为该消息将在处理之前被拒绝,因为DataPower会将消息类型设置为SOAP,它将拒绝任何非SOAP的消息。 您将需要通过“链接” API(或DataPower实例上的服务)传递它,该API可以捕获响应有效负载。