在Mule ESB中的有效负载标记中附加特殊字符

时间:2014-03-18 06:22:35

标签: mule

我希望<http:outbound-endpoint>中的有效负载值如下所示:

<set-variable variableName="url" value="#[json:url]" doc:name="Variable"></set-variable>
<set-variable variableName="payload" value="#[json:param]" doc:name="Variable"></set-variable>
<http:outbound-endpoint exchange-pattern="request-response" address="http://admin:admin@#[url.substring(7)]" method="POST" doc:name="HTTP" password="admin" user="admin">
    <set-payload value="action=start&params={input:#[payload]}&createTask=false&parts=all"/>
</http:outbound-endpoint> 

但它给出了错误。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以将&替换为&amp;

来消除错误

然而,这不是你唯一的问题。

  1. payload是保留当前有效负载的保留变量。您无法将set-variablevariableName="payload"一起使用,稍后致电#[payload]时,您的设置将被忽略。

  2. 您的POST数据类似action=start&params={input:yourdata}&createTask=false&parts=all。这是JSON和HTTP GET语法的某种混合,我怀疑这是你想要实现的。如果要以key = val格式发送POST请求,请设置Map类型的有效内容。如果要将请求作为JSON发送,请使用JSON字符串设置有效内容,您可以使用object-to-json-transformer来帮助Mule。如果要在URL中包含参数,请将它们放在URL中。但是你不能混用这些不同的语法。