SoapUI发送带附件的XML请求需区分MTOM(推荐,自动处理)和SWA(手动构造MIME),核心是正确设置Content-Type、边界符、Content-ID及xop:Include或cid引用。
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。
cid: 引用multipart/related,SOAP XML 本身是第一个 part(type="text/xml"),附件是后续 part(如 type="application/octet-stream"),通过 Content-ID 关联SoapUI(开源版或 Pro)可自动处理 MTOM,前提是 WSDL 正确声明了 xs:base64Binary 参数并标注 xmime:expectedContentTypes,且请求使用「Raw」模式或启用 MTOM 选项。
)的值设为文件路径,格式为:file://C:/p
ath/to/file.jpg(注意双斜杠和绝对路径)Content-Type: multipart/related; type="application/xop+xml" 及多个 parts当无法启用 MTOM 或服务只认 SWA 时,需切换到 Raw 模式,手工拼接 MIME 消息。关键点:边界符一致、Content-ID 匹配、SOAP part 的 Content-Type 为 text/xml,附件 part 的 Content-Type 和 Content-ID 要与 XML 中引用一致。
multipart/related; type="text/xml"; start=""
...,此时 Content-Type 保持 text/xml 即可发送后务必检查 Raw 请求和响应,确认 multipart 结构完整、CID 引用匹配、附件大小未被截断。常见失败原因包括边界符缺失、Content-ID 多余空格、文件路径错误或编码不匹配。
,不是 xxx)