我正在尝试创建一个 WSO2 ESB 代理,它将生成一个 HTTP 多部分响应,基本上有 2 个部分:XML 和附加的二进制文件(例如图像)。顺序如下:
- 服务公开为 HTTP GET 请求
- 我们首先调用一个返回二进制文件的端点
- 我们创建一个描述二进制文件的 XML
- 我们将 2 个元素混合在一起并提供多部分响应(XML + 二进制文件)
经过几次尝试并在示例和论坛上环顾四周后,我找不到解决这个特殊情况的方法。我设法调用了端点。我可以在调试日志中看到响应在soap 内部消息中以二进制形式传输。我怀疑我需要使用 MultipartFormDataFormatter。据我了解格式化程序的代码,它需要内部soap消息主体的所有子节点逐个创建一个部分。
因此,我尝试将我的 XML 内容附加为二进制节点的兄弟节点(消息在日志中看起来与预期的一样),并强制 ContentType 使用:
<property name="messageType" value="multipart/form-data" scope="axis2"/>
<property name="ContentType" value="multipart/form-data" scope="axis2"/>
确保调用正确的格式化程序。
不幸的是,这似乎不起作用,响应确实是多部分/表单数据,但数据为零。
有什么帮助吗?
谢谢雅尼克