繁体   English   中英

WSO2 ESB 处理带有 text/html 标头的 JSON 响应

[英]WSO2 ESB handle JSON Response with text/html header

我正在调用的 REST API 正在返回一个带有 text/html 标头的 JSON 消息(我知道这很蹩脚)。

我已经在 carbon.xml 中启用了构建器来处理传入的响应。

<messageBuilder contentType="text/html" class="org.wso2.carbon.relay.BinaryRelayBuilder"/>

如果响应是 XML,我可以进行 xpath base64 解码并获取响应并对其进行处理。

因为 JSON 格式的响应,即使我得到它的二进制值,我也会收到以下错误。

预期的 JSON 消息 - {"message":"Success!","result":"logadded","status":3,"response_code":200}

接收到的二进制文件 - CgoJeyJtZXNzYWdlIjoiU3VjY2VzcyEiLCJyZXN1bHQiOiJsb2cgYWRkZWQiLCJzdGF0dXMiOjMsInJlc3BvbnNlX2NvZGUiOjIwMH0

TID: [-1234] [] [2017-12-22 08:58:49,788] ERROR {org.apache.synapse.mediators.base.SequenceMediator} -  com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '{' (code 123) in prolog; expected '<'
 at [row,col {unknown-source}]: [1,1] {org.apache.synapse.mediators.base.SequenceMediator}
org.apache.axiom.om.OMException: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '{' (code 123) in prolog; expected '<'
 at [row,col {unknown-source}]: [1,1]
        at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:296)
        at org.apache.axiom.om.impl.llom.OMDocumentImpl.getOMDocumentElement(OMDocumentImpl.java:109)
        at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:570)
        at org.apache.axiom.om.impl.builder.StAXOMBuilder.getDocumentElement(StAXOMBuilder.java:566)

如果有人可以帮助我了解如何获得 JSON 响应,我会很高兴。

不知道要为什么使用BinaryRelayBuilder消息生成器,应该考虑使用org.apache.synapse.commons.json.JsonStreamBuilderorg.apache.synapse.commons.json.JsonBuilder (请参阅JSON + Support )。

BinaryRelayBuilder的另一个解决方案是在中介中使用构建器中介器:

<builder>
    <messageBuilder contentType="" class="" [formatterClass=""]/>
</builder>

就我而言,我正在调用一个返回 text/html 的端点,而 WSO2 在接收响应时抛出异常,因此我通过将以下条目添加到 conf/axis2/axis2.xml 来解决它,每个条目都在正确的部分:

<messageFormatter contentType="text/html" 
class="org.apache.synapse.commons.json.JsonStreamFormatter"/>

<messageBuilder contentType="text/html" 
class="org.apache.synapse.commons.json.JsonStreamBuilder"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM