You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过WSO MI发送请求时Content-Type无法设为text/xml求助

WSO MI强制设置Content-Type为text/xml的解决方案

问题场景

通过WSO MI发送请求时,期望请求头Content-Type为text/xml,但实际返回的是application/xml。

Wire日志记录:

DEBUG {header} - >> "Content-Type: application/xml; charset=UTF-8[\r][\n]"

已尝试以下两种配置,均未生效:

1. <header name="Content-Type" scope="transport" value="text/xml"/>
2. <property name="ContentType" scope="axis2" value="text/xml"/>

可行解决步骤

1. 同时指定带charset的transport头和axis2属性

WSO MI处理XML负载时可能自动覆盖Content-Type,添加charset参数可提升配置优先级,同时设置transport头和axis2属性:

<property name="ContentType" scope="axis2" value="text/xml; charset=UTF-8"/>
<header name="Content-Type" scope="transport" value="text/xml; charset=UTF-8"/>

2. 禁用自动类型协商与分块传输

添加axis2属性关闭分块传输并明确HTTP方法,避免系统自动调整Content-Type:

<property name="DISABLE_CHUNKING" scope="axis2" value="true"/>
<property name="HTTP_METHOD" scope="axis2" value="POST"/>
<property name="ContentType" scope="axis2" value="text/xml; charset=UTF-8"/>
<header name="Content-Type" scope="transport" value="text/xml; charset=UTF-8"/>

3. 确认中介流执行顺序

确保上述配置代码在call或send mediator之前执行,防止后续中介逻辑覆盖已设置的头信息和属性。

4. 全局修改axis2.xml消息格式化器(谨慎操作)

若需全局统一XML消息的Content-Type,找到MI安装目录下的conf/axis2/axis2.xml,修改XMLFormatter的默认配置:

<messageFormatter contentType="text/xml"
                 class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>

注意:此修改会影响所有XML类型的请求,需根据业务场景评估后操作。

内容的提问来源于stack exchange,提问作者Wajih Haider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:42:40