【问题标题】:Call REST WebServices via HTTP Adapter MFP 7.1通过 HTTP Adapter MFP 7.1 调用 REST WebServices
【发布时间】:2016-09-08 13:09:58
【问题描述】:

我们正在使用 MFP7.1 开发 IONIC 应用程序。我们正在尝试调用 REST 网络服务以使用 HTTP 适配器获取一些数据。

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

 function getFeed(username,password) {
  var data = {
    "username" : username,
    "password" : password
  };

    var input = {
        method : 'post',
        returnedContentType : 'plain',
        path : 'PATH HERE',
     body: {
        content: data.toString(),
        contentType: 'application/json; charset=utf-8;',
      },
    };
  return WL.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>

我们执行以下操作来调用我的离子提供程序中的适配器,

 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));
       }
   );

我在错误日志中收到以下错误,

"errors\":[],\"info\""statuscode\":400}","re​​sponseJSON":{"statusReason":"Bad Request","re​​sponseHeaders":{"Transfer-Encoding":"chunked","Server":"Apache-Coyote/1.1","Connection":"close","Content-Type":"text/plain"} ,"isSuccessful":true,"可以 此处不反序列化 WEBSERVICE 实体的实例。用户退出 START_ARRAY 令牌\n at[Siyrce.org.apache.catal.inc.connector.......

【问题讨论】:

  • MFP 服务器上的适配器与后端之间似乎存在问题。似乎后端正在向适配器返回 400 响应,而适配器只是将此 400 响应发送回您的移动客户端。适配器发送到后端的请求是否存在问题?
  • 我认为这一行: content: data.toString() 很麻烦。 toString() 不是在 JS 中对对象进行字符串化的正确方法。它会起作用,但在这种情况下它可能只会给你“[Object object]”
  • @s.m.priya,你尝试过 Moty 上面的建议了吗?

标签: javascript ionic-framework ibm-mobilefirst mobilefirst-adapters


【解决方案1】:

根据 cmets 中的建议,尝试将 .toString() 更改为 JSON.stringify

content:
    JSON.stringify(data)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
相关资源
最近更新 更多