我希望<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¶ms={input:#[payload]}&createTask=false&parts=all"/>
</http:outbound-endpoint>
但它给出了错误。
感谢。
答案 0 :(得分:1)
您可以将&
替换为&
然而,这不是你唯一的问题。
payload
是保留当前有效负载的保留变量。您无法将set-variable
与variableName="payload"
一起使用,稍后致电#[payload]
时,您的设置将被忽略。
您的POST数据类似action=start¶ms={input:yourdata}&createTask=false&parts=all
。这是JSON和HTTP GET语法的某种混合,我怀疑这是你想要实现的。如果要以key = val格式发送POST请求,请设置Map类型的有效内容。如果要将请求作为JSON发送,请使用JSON字符串设置有效内容,您可以使用object-to-json-transformer
来帮助Mule。如果要在URL中包含参数,请将它们放在URL中。但是你不能混用这些不同的语法。