Mule ESB - 覆盖媒体类型的HTTP请求

时间:2017-12-14 14:44:56

标签: rest api http mule esb

我正在尝试使用标准的mule HTTP请求发送SOAP信封,而我在设置出站请求的Media-Type时遇到问题。 web服务需要“application / soap + xml”,但在POST Request中设置'Content-Type:application / soap + xml'标头或将mime-type设置为payload有效。我一直收到错误415 - 不支持的媒体类型。有没有人知道我该怎么做才能解决这个问题?到目前为止我的XML代码(我改变了名称和地址,这个想法保持不变):

     <flow name="get-report">
    <http:listener config-ref="asdf-httpListenerConfig" path="/" doc:name="HTTP"/>

    <custom-transformer encoding="UTF-8" mimeType="application/soap+xml" class="Authorization" doc:name="Java"/>
    <logger message="#[payload]" level="INFO" doc:name="Logger"/>

    <http:request config-ref="HTTP_Request_Configuration" path="path.svc" method="POST" doc:name="HTTP">
        <http:request-builder>
            <http:header headerName="Content-Type" value="application/soap+xml"/>
            <http:header headerName="action" value="someAction"/>
            <http:header headerName="host" value="someHost"/>
        </http:request-builder>
    </http:request>
    <logger message="#[payload]" level="INFO" doc:name="Logger"/>
</flow>

“授权”变换器并不真正相关,现在我只需对整个信封进行硬编码并将其返回。 此外,通过soapUI使用相同的地址,内容类型和媒体类型POST信封工作正常。

1 个答案:

答案 0 :(得分:0)

在http:request中设置标题应该明确设置Content-Type标头,所以我建议这不是问题。虽然它依赖于API实现,但请求Content-Type, Content-Encoding or by inspecting the data directly可能导致415不支持的媒体类型。也许它可能是由XML结构引起的。