在MULE ESB中调用REST

时间:2014-03-17 09:50:05

标签: java json rest mule

Rest调用是用Java实现的。同样的事情,我想在骡​​子,实施   Java代码如下:

URL url = new URL(RestUriConstants.BUSINESS_PROCESS_BASE + businessProcessName);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Accept","application/json");
OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); 
writer.write(data);
writer.flush();
骡子我送两件东西  的 1。 URL
 2.加载

json如下:
{“url”:“http://mysystem.com:8080/rest/processData”,“param”:{“claimNo”:“9”,“status”:“open”,“customerName”:“Rajesh”}}

我如何动态传递该url,以及我需要将param值传递给其余的调用..

--- ---- UPDATE

有效负载值类似于“action = start& params = {'input':#[json:param]}& createTask = false& parts = all”

示例:

<set-payload value="action=start&params={'input':#[json:param]}&createTask=false&parts=all"/>

但它给出了错误。

感谢。

1 个答案:

答案 0 :(得分:2)

要在Mule中使用动态网址进行休息调用,您只需先将json设置为有效负载,然后

<http:outbound-endpoint exchange-pattern="request-response" address="http://#[url]" method="POST" />

使用可变url定​​义url。

如果你的有效载荷是上面的json字符串,你可以

<set-variable variableName="url" value="#[json:url]"/>

<set-payload value="#[json:param]"/>
出境前

。请注意,在这种情况下,你必须剥离&#34; http://&#34;出站的url前缀如下:

address="http://#[url.substring(7)]"

希望这能让你开始,你的问题有点不清楚。