MobileFirst Platform JavaScript 适配器无法通过 WLResourceRequest 获取参数



我正在使用MobileFirst v7,并且我使用wlresourcerequest/sendformparameters API发送发布请求,但是,我无法从JS适配器端获得提交的参数... p> belows是示例代码:

var resourceRequest = new WLResourceRequest("adapters/businessAdapter/flightsearch", WLResourceRequest.POST);
var params={
        "flightNum":'mu8899',
        "departCity":'SHA',
        "destCity" :'PEK'
};
resourceRequest.sendFormParameters(params).then(
        callSuccess,
        callFailure
);

JS适配器代码:

function flightsearch(params) {
   WL.Logger.info("get params "+params);

    var input = {
        method : 'post',
        returnedContentType : 'json',
        path : 'restapi/api/flightsearch',
        body :{
            contentType: 'application/json; charset=utf-8',
            content:params
        },
        headers: {"Accept":"application/json"} 
    };
    return WL.Server.invokeHttp(input);
}

您使用的语法对Java适配器很好。

但是,对于JavaScript适配器,处理参数的处理方式不同。

首先,您的适配器过程应定义其期望的参数:

function flightsearch(flightNum, departCity, destCity) {
///
}

其次,此过程将使用HTTP GETPOST触发,其单个参数称为params,该参数需要包含一个数组,以正确的顺序表示所有过程参数:

params:["mu8899","SHA","PEK"]

现在使用JavaScript,这将转化为:

var resourceRequest = new WLResourceRequest("adapters/businessAdapter/flightsearch", WLResourceRequest.POST);
var params=[
        'mu8899',
        'SHA',
        'PEK'
];
var newParams = {'params' : JSON.stringify(params)};
resourceRequest.sendFormParameters(newParams).then(
        callSuccess,
        callFailure
);

如您所见,我们首先在正确的顺序中构建JSON数组(Note, array 不是对象),然后我们将其转换为字符串并使用参数名称发送给适配器'params'。

相关内容

  • 没有找到相关文章

最新更新