0

0

SoapUI怎么发送带附件的XML请求 MTOM/SWA

月夜之吻

月夜之吻

发布时间:2026-01-02 11:04:04

|

160人浏览过

|

来源于php中文网

原创

SoapUI发送带附件的XML请求需区分MTOM(推荐,自动处理)和SWA(手动构造MIME),核心是正确设置Content-Type、边界符、Content-ID及xop:Include或cid引用。

soapui怎么发送带附件的xml请求 mtom/swa

SoapUI 发送带附件的 XML 请求(支持 MTOM 或 SWA)需要手动构造符合规范的消息结构,不能仅靠普通表单上传。核心在于正确设置请求的 Content-Type(如 multipart/related)、添加附件部分、并在 SOAP Body 中用 xop:Include 引用二进制内容。以下是具体操作方式:

确认协议支持并选择合适方式

MTOM 和 SWA 都是 SOAP 附件传输标准,但 SoapUI 原生对 MTOM 支持更完善(尤其 Pro 版),而 SWA(SOAP with Attachments)较老旧,需严格遵循 MIME 封装格式。建议优先使用 MTOM,除非服务端明确要求 SWA。

  • MTOM:基于 XOP(XML-binary Optimized Packaging),SOAP Body 内保留 XML 结构,二进制内容单独作为 multipart part 存放,用 cid: 引用
  • SWA:整个消息为 multipart/related,SOAP XML 本身是第一个 part(type="text/xml"),附件是后续 part(如 type="application/octet-stream"),通过 Content-ID 关联

用 MTOM 方式发送(推荐)

SoapUI(开源版或 Pro)可自动处理 MTOM,前提是 WSDL 正确声明了 xs:base64Binary 参数并标注 xmime:expectedContentTypes,且请求使用「Raw」模式或启用 MTOM 选项。

10Web
10Web

AI驱动的WordPress网站自动构建器,托管和页面速度助推器

下载
  • 在请求编辑区右键 → Select Request Style → MTOM/XOP(若灰显,说明 WSDL 未正确定义附件参数)
  • 将附件字段(如 )的值设为文件路径,格式为:file://C:/path/to/file.jpg(注意双斜杠和绝对路径)
  • 确保项目设置中启用了 MTOM:Project → Properties → Enable MTOM 打勾
  • 发送前检查 Raw 标签页,可见自动生成的 Content-Type: multipart/related; type="application/xop+xml" 及多个 parts

手动构造 SWA 请求(无 WSDL 或需兼容旧服务)

当无法启用 MTOM 或服务只认 SWA 时,需切换到 Raw 模式,手工拼接 MIME 消息。关键点:边界符一致、Content-ID 匹配、SOAP part 的 Content-Type 为 text/xml,附件 part 的 Content-Type 和 Content-ID 要与 XML 中引用一致。

  • 将请求类型改为 Raw,Content-Type 设为:multipart/related; type="text/xml"; start=""
  • 按 MIME 格式编写(示例含一个 JPG 附件):

    --xyz123
    Content-Type: text/xml; charset=UTF-8
    Content-Transfer-Encoding: 8bit
    Content-ID:



      
        
          test.jpg
          
        

      

    --xyz123
    Content-Type: image/jpeg
    Content-Transfer-Encoding: binary
    Content-ID:

    [二进制数据粘贴处 —— SoapUI 不支持直接粘贴二进制,需用脚本或 Base64 编码后用 text/plain + base64]
    --xyz123--
  • 实际中更常用 Base64 编码附件再内联(非真正 SWA,但服务端常兼容):把文件 Base64 编码后填入 ...,此时 Content-Type 保持 text/xml 即可

验证与调试技巧

发送后务必检查 Raw 请求和响应,确认 multipart 结构完整、CID 引用匹配、附件大小未被截断。常见失败原因包括边界符缺失、Content-ID 多余空格、文件路径错误或编码不匹配。

  • 启用 SoapUI 日志:File → Preferences → Log Viewer → 勾选 HTTP Logs,查看真实发出的字节
  • 用外部工具(如 Postman 或 curl)对比成功请求的 raw 格式,反向调整 SoapUI 的手工内容
  • 如果服务返回 “Invalid MIME part” 或 “Content-ID not found”,重点检查 Content-ID 的尖括号是否完整(必须是 ,不是 xxx

相关专题

更多
软件测试常用工具
软件测试常用工具

软件测试常用工具有Selenium、JUnit、Appium、JMeter、LoadRunner、Postman、TestNG、LoadUI、SoapUI、Cucumber和Robot Framework等等。测试人员可以根据具体的测试需求和技术栈选择适合的工具,提高测试效率和准确性 。

428

2023.10.13

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1852

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

2080

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

923

2024.11.28

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

424

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

172

2023.10.30

http500解决方法
http500解决方法

http500解决方法有检查服务器日志、检查代码错误、检查服务器配置、检查文件和目录权限、检查资源不足、更新软件版本、重启服务器或寻求专业帮助等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

276

2023.11.09

http请求415错误怎么解决
http请求415错误怎么解决

解决方法:1、检查请求头中的Content-Type;2、检查请求体中的数据格式;3、使用适当的编码格式;4、使用适当的请求方法;5、检查服务器端的支持情况。更多http请求415错误怎么解决的相关内容,可以阅读下面的文章。

387

2023.11.14

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Rust 教程
Rust 教程

共28课时 | 4万人学习

Git 教程
Git 教程

共21课时 | 2.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号