我无法弄清楚如何解码和编码响应。当我到达 wso2 并结束时,我得到了。
这是我得到的回复:
{"binary":"eyJSZXNwb25zZUluZm8iOiB7CiAgICAgICAgIlJlc3VsdENvZGUiOiAyMDAsCiAgICAgICAgIlJlc3VsdERlc2MiOiAic3VjY2VzcyIKICAgICAgfQp9"}
这就是我应该得到的回应
{"ResponseInfo": {
"ResultCode": 200,
"ResultDesc": "success"
}
}
当我解码从“eyJSZXN”开始的代码时,我得到了正确的有效负载。所以唯一的问题是我在获取它时无法将其转换为 json。
<call>
<endpoint key="Endpoint"/>
</call>
<property name="messageType" scope="axis2" type="STRING" value="application/json"/>
<property expression="json-eval($)" name="ResponseJSON" scope="default" type="STRING"/>
上面的代码给了我 ResponseJSON 中的二进制响应。因此,我想请求是否有人可以帮助我解决这个问题。
您可以使用
base64Decode
功能来实现此目的。检查以下示例。
<property name="encodedBody" expression="json-eval($.binary)"/>
<payloadFactory media-type="json">
<format>$1</format>
<args>
<arg evaluator="xml" expression="base64Decode($ctx:encodedBody)"/>
</args>
</payloadFactory>