如何在 wso2 esb 脚本中介中读取请求参数值

How to read request parameter values in wso2 esb script mediator

我需要捕获 url 脚本中介在 get 请求中解析的参数。我使用 WSO2 esb 4.8.1。我尝试使用以下 js 代码。但它给出了一个错误,说 window 未定义。

function getUrlVars() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
vars[key] = value;
});
return vars;
}

   
  var requestNew="<m:ViW xmlns:m=\"wom\">                                                                                                   
   <m:request>
   <RequestHeader>
               <RemoteIP>dummyIp</RemoteIP>
               <AppName>dummyAppName</AppName>
               <AppPassword>dummyPassword</AppPassword>
               <UserName>dummyUserName</UserName>
            </RequestHeader>
            <OrderId>23</OrderId>
            <AccountNo>23</AccountNo>
            <Cir>23</Cir>
            <DocketNo>23</DocketNo>
            <Status>23</Status>
            <RequestType>23</RequestType>
            <RequestedFrom>2016-04-19T22:47:37.000Z</RequestedFrom>";
   requestNew=requestNew+"
            <RequestedTo>"+getUrlVars()['RequestedTo']+"</RequestedTo>
         </m:request>                                                                     
      </m:ViW>";
   
   
   mc.setPayloadXML(new XML(requestNew));

那么如何访问 wso2 esb 脚本中介器中的 url 参数值?

Following blog will tell you how to do it. Its written targetting WSO2 API Cloud。但是由于在 ESB 和 API Manager 中都使用了 synapse,因此它对您的问题也有效。总之,

检索路径参数

var id = mc.getProperty('uri.var.id');

检索查询参数

var mask = mc.getProperty('query.param.mask');