骡子 - http发布消息

时间:2013-09-02 10:31:02

标签: mule mule-studio

我需要对外部系统进行一些http post调用。 我有一个简单的问题,我想通过post发送一个不是有效负载本身的xml文件,而只是它的一部分。我可以使用#[payload.getMyXmlPostMessage()]轻松检索它,但是如何将这些信息放在http组件上? 我不想覆盖包含稍后将在流程中使用的其他信息的有效负载。

2 个答案:

答案 0 :(得分:4)

在不更改有效负载的情况下调用外部服务的最佳方法可能是委派给单独的流程。

您可以使用VM传输调用它,设置交换模式以请求响应。

这样有效负载将被复制,您可以使用新流程进行所有可能需要的更改,结果将存储在<enricher />

中配置的变量中

答案 1 :(得分:0)

可以在不修改现有有效负载的情况下调用外部服务的不同选项: -

  1. 在Http调用之前将现有的有效负载保存在变量中,稍后在Http调用之后使用set payload从变量设置有效负载

  2. 在流中使用Async块并使用Http在那里调用外部服务。使用Async块将创建线程的副本,并且不会干扰当前的有效负载,因为它将获得该副本。

  3. 当然,Enricher组件就在那里,你可以在Enricher中使用你的Http组件并调用外部服务。如您所知,Enricher不会干扰当前的有效载荷。