2

我有一个允许我上传文件的工作 Web 服务。我想把 Mule 3 放在它前面,但我没有成功让它传递 MIME 类型为“multipart/form-data”的有效负载。

尝试这样做会产生 400 错误:“客户端发送的请求在语法上不正确(错误请求)。”

以下流程(没有实现我的目的,但用作测试)工作正常,传递我发布的任何文本。

<flow name="Flow1" doc:name="Flow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="test/rule_file" mimeType="text/plain" doc:name="HTTP"/>
<http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" path="test/rule_file" mimeType="text/plain" doc:name="HTTP"/>
</flow>

但是,当我从“text/plain”切换到“multipart/form-data”时,会产生上面列出的错误。

<flow name="Flow1" doc:name="Flow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="test/rule_file" mimeType="multipart/form-data" doc:name="HTTP"/>
<http:outbound-endpoint exchange-pattern="request-response" host="localhost" port="8080" path="test/rule_file" mimeType="multipart/form-data" doc:name="HTTP"/>
</flow>

有人可以指出我如何让​​这个工作吗?

4

1 回答 1

3

您似乎正在尝试构建 HTTP 代理:要使其工作,您必须在流的请求和响应阶段复制属性,并传播可能已在入站 HTTP 端点上使用的路径扩展。

这可以手动实现,但最好使用现成的模式:

<pattern:http-proxy name="patternProxy"
    inboundAddress="http://localhost:8081/test/rule_file"
    outboundAddress="http://localhost:8080/test/rule_file" />
于 2013-02-07T16:33:20.690 回答