电话
400 9058 355
SOAP with Attachments(SWA)是通过MIME multipart/related封装实现SOAP消息与二进制附件并列传输的标准机制,避免Base64编码导致的体积膨胀和解析开销;其第一部分为SOAP信封,其余为带Content-ID的原始二进制附件,SOAP体内用cid引用;相比MTOM和DIME,SWA兼容性强但WSDL描述弱、缺乏附件元数据定义,且现代框架更倾向MTOM。
SOAP with Attachments(SWA)是一种在SOAP消息中携带二进制附件的标准机制,它不改变SOAP本身,而是借助MIME多部分(multipart/related)封装,把SOAP信封和附件作为独立部分并列传输,避免将二进制数据Base64编码嵌入XML正文。
SOAP本质是纯文本协议(基于XML),无法直接承载图片、PDF、音频等二进制内容。传统做法是用Base64编码把文件转成ASCII字符串塞进,但这会带来约33%的数据体积膨胀,且解析开销大、内存占用高。SWA绕开了这个瓶颈:它把整个HTTP请求/响应构造成一个MIME多部分消息,其中:
text/xml 或 application/soap+xml)image/jpeg、application/pdf),各自拥有独立的Content-ID(如)href="cid:abc123@example.org"引用对应附件,实现“逻辑关联”而非“物理内嵌”三者都解决SOAP传二进制的问题,但机制和适用性不同:
以Java Axis2为例,客户端上传一个JPG文件的SWA请求流程如下:
urn:uuid:xxx占位OperationClient.addAttachment())添加原始字节流,并指定Content-ID
Content-Type: multipart/related及相应头字段MessageContext.getAttachmentMap().getDataHandler("cid:xxx")获取附件流,直接写入磁盘或解码处理SWA虽简单直接,但落地时需注意:
Request Attachments: allow配置
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...