gpt4 book ai didi

javascript - 在 MobileFirst 8 的 JS HTTP 适配器中添加方法

转载 作者:行者123 更新时间:2023-11-29 14:40:15 36 4
gpt4 key购买 nike

我正在尝试使用 JavaScript HTTP 适配器从 SOAP Web 服务获取一些数据。为此,我将 MFP8 和 Ionic 与 TypeScript 结合使用。

我有以下适配器实现文件,

function getFeed(params) {
var sr =
"<soapenv:Envelope " +
"xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
"xmlns:len=\"targetNamespace HERE" >" +
"<soapenv:Header/>"+
"<soapenv:Body>" +
"<len:authentication>" +
"<username>"+params[0]+"</username>"+
"<password>"+params[1]+"</password>"+
"</authentication></soapenv:Body></soapenv:Envelope>";

var input = {
method : 'post',
returnedContentType : 'xml',
path : 'PATH HERE',
body: {
content: sr,
contentType: 'text/xml; charset=utf-8',
},
};
return MFP.Server.invokeHttp(input);
}

这里是 adapter.xml,

<mfp:adapter name="http"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mfp="http://www.ibm.com/mfp/integration"
xmlns:http="http://www.ibm.com/mfp/integration/http">
<displayName>http</displayName>
<description>http</description>
<connectivity>
<connectionPolicy xsi:type="http:HTTPConnectionPolicyType">
<protocol>http</protocol>
<domain>DOMAIN NAME HERE</domain>
<port>PORT NO HERE</port>
<connectionTimeoutInMilliseconds>30000</connectionTimeoutInMilliseconds>
<socketTimeoutInMilliseconds>30000</socketTimeoutInMilliseconds>
<maxConcurrentConnectionsPerNode>50</maxConcurrentConnectionsPerNode>
</connectionPolicy>
</connectivity>
<procedure name="getFeed"/>
</mfp:adapter>

因此,根据 API 文档,我执行了以下操作以在我的 ionic 提供程序中调用适配器,

 var resourceRequest = new WLResourceRequest("adapters/http/getFeed", WLResourceRequest.GET);
resourceRequest.setQueryParameter("params", "['username', 'password']");
resourceRequest.send().then(
function(response) {
alert('response '+JSON.stringify(response.responseText));
},
function(response) {
alert("HTTP Failure "+JSON.stringify(response));
}
);

因为,我需要从 SOAP 服务中获取特定数据。为此,我需要传递参数和方法。

在知识中心阅读,我发现了一些关于用查询字符串调用参数的东西,我可以传递参数。

我的要求是也传递方法名称。

谁能告诉我如何传递方法名?

感谢任何人的帮助!!!

最佳答案

你可以传递任意多的参数,例如你可以这样做:

在适配器中:

function getFeed(method, username, password) {
var sr =
"<soapenv:Envelope " +
"xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
"xmlns:len=\"targetNamespace HERE" >" +
"<soapenv:Header/>"+
"<soapenv:Body>" +
"<len:authentication>" +
"<method>"+method+"</method>"+
"<username>"+username+"</username>"+
"<password>"+password+"</password>"+
"</authentication></soapenv:Body></soapenv:Envelope>";

var input = {
method : 'post',
returnedContentType : 'xml',
path : 'PATH HERE',
body: {
content: sr,
contentType: 'text/xml; charset=utf-8',
},
};
return MFP.Server.invokeHttp(input);
}

在客户端:

 var resourceRequest = new WLResourceRequest("adapters/http/getFeed", WLResourceRequest.GET);
resourceRequest.setQueryParameter("params", "['myMethod', 'myUsername', 'myPassword']");
resourceRequest.send().then(
function(response) {
alert('response '+JSON.stringify(response.responseText));
},
function(response) {
alert("HTTP Failure "+JSON.stringify(response));
}
);

请求中的 JSON 数组语法只是参数通过网络传递的方式,并不意味着您在适配器中返回一个数组。它的工作原理是将数组中的第一个元素分配给第一个函数参数,将第二个元素分配给第二个参数,依此类推...

关于javascript - 在 MobileFirst 8 的 JS HTTP 适配器中添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39264306/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com