在WSO2中使用发送介体之前,从$ body中删除Soap Envelope。

时间:2018-10-17 18:26:47

标签: json wso2

我的API接收到一个XML,该XML的字段重复多次,如下所示:

<Root>
  <Element>
    <Request>username=username&password=password&field3=field3&field4=field4</Request>
    <Request>username=username&password=password&field3=field3&field4=field4</Request>
  </Element>
</Root>

我使用IterateMediator提取这些请求字段,并在AggregatorMediatorSendMediator的帮助下分别调用它们到URL。

我正在调用的API一次只能接受一行,并包含以下元数据:

HTTP method: POST    
Content-Type: application/x-www-form-urlencoded    
Payload: username=username&password=password&field3=field3&field4=field4

问题是,尽管我从IterateMediator中正确提取了有效负载,但是在到达SendMediator之前,$body的值被Soap Envelope标签包围了。我尝试使用PayloadFactoryMediator来更改$body的值,但是我只能将其设置为xml或json,而不能将其设置为text / plain。

您有什么主意,除了xml或json之外,我还能如何使主体变成其他东西?

1 个答案:

答案 0 :(得分:0)

您能显示顺序吗?

“ ..但是我只能将其设置为xml或json,而不能将其设置为text / plain ..”

您尝试使用media-type =“ text”吗?

<payloadFactory media-type="text" xmlns="http://ws.apache.org/ns/synapse">
    <format>$1</format>
</payloadFactory>