如何在 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');
我需要捕获 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');