我正在构建一个REST服务,接受包含String 和二进制数据混合的Foo
个对象。这是我到目前为止获得的XML。
<foo>
<text>regular text</text>
<text mime="application/octet-stream">base64 encododed binary data</text>
</foo>
这是一个好主意还是存在大量(MB)二进制数据的缺点?
作为次要的设计细节,我试图在使用<text mime=".."/>
或专用名称<binary>...</binary>
之间解决二进制数据问题。哪个更连贯?
答案 0 :(得分:2)
我建议在您的请求/响应xml中仅包含您要存储要传递的二进制数据的位置,然后检索执行另一个请求的数据。 该解决方案的缺点是执行另一个请求,但专业人员在您身边:
答案 1 :(得分:0)
HTTP旨在传输任意长度的有效载荷。发送MB数据将没有问题。 建议不要通过base64编码传输数据,因为它将增加必须通过线路发送的字节数,从而降低吞吐量。
我建议您考虑使用multipart mime type而不是XML。
答案 2 :(得分:0)
你的webservice容器是什么? xml的格式将由二进制序列化程序生成。 axis2可能对你有好处。它基于公理,提供直接二进制支持