更改WSO2中的请求有效负载

时间:2015-08-17 14:42:17

标签: wso2 wso2carbon

我是WSO2的新手。 我代理了一项服务。现在我正在尝试更改输入请求内容。后端期待下面的请求

 <input>
 <newParam>    
 {
    "id" :"8888822"   
 }
 </newParam>
 </input>

但前端将发送请求如下:

 {
    "id" :"8888822"   
 }

没有开始和结束标记。

任何有助于我这样做的文件或链接都会有很大帮助。

提前致谢。

1 个答案:

答案 0 :(得分:2)

您可以使用Payload Factory介体[1]来实现此目的。在以下示例中,您只需从请求正文中检索“id”字段的值,并将其附加到预定义的有效负载。

    <log level="custom">
      <property name="IncomingMessage" expression="$body" />
   </log>
    <payloadFactory media-type="xml">
        <format>
             <input>
             <newParam>    
             $1
             </newParam>
             </input>
        </format>
        <args>
            <arg evaluator="xml" expression="fn:concat('{&quot;id&quot;:&quot;', //id/text(), '&quot;}')" />
        </args>
    </payloadFactory>
    <log level="custom">
      <property name="TransformedMessage" expression="$body" />
   </log>

您会在IncomingMessage中看到TransformedMessagewso2carbon.log

[1] - https://docs.wso2.com/display/ESB481/PayloadFactory+Mediator