SOAP with Attachments (SwA) 是怎么回事


SOAP with Attachments(SwA)是通过MIME multipart/related封装SOAP信封与base64编码附件的机制,不修改SOAP协议;因体积膨胀和解析开销大,已被更高效的MTOM替代,现主要用于遗留系统集成。

soap with attachments (swa) 是怎么回事

SOAP with Attachments(SwA)是一种让 SOAP 消息携带二进制附件(比如图片、PDF、XML 文件等)的机制,它本身不修改 SOAP 协议,而是借助 MIME 多部分(multipart/related)封装,把 SOAP 信封和附件“打包”成一个 HTTP 请求体发送。

SwA 的核心思路:用 MIME 把 SOAP 和附件捆在一起

标准 SOAP 消息是纯 XML 文本,没法直接放图片或大文件。SwA 不去改 SOAP 规范,而是借用了电子邮件常用的 MIME 标准:

  • 整个请求是一个 multipart/related 类型的 MIME 包
  • 第一部分是标准的 SOAP Envelope(Content-Type: text/xml)
  • 后续部分是附件(如 image/jpeg、application/pdf),每个有独立 Content-ID
  • SOAP 正文中通过 xop:Include 或引用 cid:(如 <report.pdf></report.pdf>)指向对应附件

SwA 和 MTOM 的关系:后者是前者的升级替代方案

SwA 早期被广泛使用(尤其在 .NET Framework 1.x/2.0 和一些老 J*a WebService 框架中),但它有个明显缺陷:

移乐AI 移乐AI

AI一键生成、处理各种图片

移乐AI 212 查看详情 移乐AI
  • 附件必须做 base64 编码嵌入 MIME,导致体积膨胀约 33%,效率低
  • 解析时需先解码再处理,增加 CPU 开销

因此 W3C 推出了 MTOM(Message Transmission Optimization Mechanism)——它同样用 multipart/related 封装,但允许附件以原始二进制形式传输(不 base64),只对 XML 部分编码,更高效。现在新系统基本都用 MTOM,SwA 主要出现在遗留系统集成场景。

实际开发中你可能遇到 SwA 的几种情况

  • 调用老版本 WebService(如 Axis 1.x、.NET ASMX)时收到带附件的响应,HTTP 响应头含 Content-Type: multipart/related
  • 抓包看到多个 MIME boundary 分隔块,其中一块是 XML,其余是二进制流
  • 客户端解析失败,报错类似 “Unexpected start of multipart body” 或 “Cannot resolve cid:xxx”——常因未正确解析 MIME 结构或忽略 Content-ID 引用

基本上就这些。SwA 现在不算主流,但理解它有助于调试老系统、读懂协议交互细节,也帮你明白为什么后来有了 MTOM。

以上就是SOAP with Attachments (SwA) 是怎么回事的详细内容,更多请关注其它相关文章!


# 已被  # 黄冈seo搜索推广策划  # 网站建设是怎么收费的  # 贵州网站建设小程序  # 惠州网站推广行者seo09  # 网站推广优化怎样做  # 推广 申请网站  # seo优化教程快速入门seo  # 长春可靠网站建设哪家好  # 网站维护的推广方案  # 徐州美业推广招聘网站  # 不去  # 帮你  # java  # 出现在  # 多个  # 有个  # 是一种  # 是一个  # 是否符合  # 行号  # 为什么  # .net  # pdf  # app  # 编码 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: word文档中的分隔符有哪些不同类型和用途_Word分隔符类型与用途方法  雨课堂官网在线登录 网页版雨课堂登录链接  Win11怎么设置分辨率 Win11显示设置调整分辨率及刷新率修改  如何查找哪个composer包引入了特定的依赖?  快手网页版官方访问 快手网页版页面在线打开  漫蛙漫画直连入口 _ manwa官方备用入口实时检测  铁路12306买票怎么选双人铺 铁路12306卧铺分配规则说明  iPhone14无法连接蓝牙设备如何解决  Go反射进阶:访问内嵌结构体中的被遮蔽方法  大熊猫抓取竹子的“大拇指”其实是什么?蚂蚁庄园课堂今天答案最新11月30日  如何在mysql中使用索引提示_mysql索引提示优化方法  夸克浏览器资源嗅探怎么用 夸克浏览器网页资源下载技巧【教程】  京东快递包裹信息查询入口 京东快递官方查询平台入口  PPT页面尺寸怎么修改 PPT自定义幻灯片大小与方向设置【教程】  《sketchbook》选中部分图案移动方法  CodeIgniter 3 连接 SQL Server:正确获取查询结果的教程  知音漫客官网首页入口_知音漫客热门漫画推荐  《金山词霸》语音翻译方法  Google Cloud Functions 时区处理指南:理解与最佳实践  《我的恋爱逃生攻略》中文名字输入方法  奥克斯空调不制热啥毛病_奥克斯空调不制热原因分析及解决技巧  Golang如何使用gRPC拦截器实现日志收集_Golang gRPC拦截器日志收集实践  聚水潭ERP后台管理系统登录 聚水潭ERP官方登录通道  如何在解析前预检查XML文件的完整性? 比如检查文件大小或特定结束标签  荣耀 Magic10 Pro 系统更新提示失败_荣耀 Magic10 Pro 升级修复  QQ网站入口直接登录 QQ官方正版登录页面  《下一站江湖2》大雪山加入方法  广州地铁app准妈咪徽章领取方法  Yandex俄罗斯搜索引擎官网入口 Yandex网页端直接访问  如何通过settings.json个性化您的VS Code体验  Highcharts雷达图径向轴数值标签实现教程  基于 Flink 和 Kafka 实现高效流处理:连续查询与时间窗口  PHP动态导航按钮:根据用户登录状态切换链接与文本  除了Copilot,还有哪些值得一试的VS Code AI插件?  向往的生活小游戏启动处_向往的生活小游戏立即启动  2025SNH48年度青春盛典门票价格及购买方式  德邦物流在线查询系统 德邦快递货物运输追踪  学习通网页版个人登录_学习通网页版个人账户登录入口  《tt语音》超级玩家开通方法  如何在Python中安全地将环境变量转换为整数并满足Mypy类型检查  谷歌浏览器怎么把网页翻译成中文_Chrome网页翻译功能使用方法  C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较  PySimpleGUI中实现键盘按键与按钮事件绑定教程  Python项目中的条件导入:解决跨模块依赖问题  天天漫画2025最新入口 天天漫画永久有效登录入口  创建快捷方式启动系统保护  PHP魔术方法__set与__isset:设计考量、性能权衡与静态分析的视角  PHP实现等比数列:构建数组元素基于前一个值递增的方法  泰拉瑞亚网页版在线登录入口 泰拉瑞亚官方正版入口  Sublime怎么自动添加CSS前缀_Sublime安装Autoprefixer插件 

 2025-12-18

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.