1

Wir entwickeln die IONIC App mit MFP7.1. Wir versuchen, den REST-Webservice aufzurufen, um Daten mithilfe des HTTP-Adapters zu erhalten.Call REST WebServices über HTTP Adapter MFP 7.1

Ich habe folgende Adapter Implementierungsdatei

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

Und hier ist die 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> 

Wir haben folgende den Adapter in meinem ionischen Anbieter zu nennen,

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

Ich erhalte den folgenden Fehler im Fehlerprotokoll,

"Fehler \": [], \ "info \" "Statuscode \": 400} " "responseJSON": { "statusReason": "Bad Request", "response": {" Transfer- Encoding ":" chunked "," Server ":" Apache-Coyote/1.1 "," Verbindung ":" close "," Inhaltstyp ":" text/plain "}," isSuccessful ": true," Kann nicht deserialisieren Instanz WEBSERVICE Einheit here.User aus START_ARRAY Token \ n an [Siyrce.org.apache.catal.inc.connector .......

+0

Es scheint, dass ein Problem zwischen dem Adapter auf dem MFP-Server und dem Back-End besteht. Es sieht so aus, als ob das Backend eine 400 Antwort an den Adapter zurückgibt und der Adater diese 400 Antwort zurück an Ihren mobilen Client sendet. Könnte es ein Problem mit der Anforderung geben, dass der Adapter an das Back-End sendet? –

+2

Ich denke, diese Zeile: Inhalt: data.toString() ist ein Problem. toString() ist nicht der richtige Weg, um ein Objekt in JS zu stringieren. Es wird funktionieren, aber es wird Ihnen wahrscheinlich nur "[Object object]" in diesem Fall geben –

+0

@ s.m.priya, haben Sie versucht, was Moty oben vorgeschlagen? –

Antwort

0

Per Vorschlag in den Kommentaren, versuchen zu ändern .toString() bis JSON.stringify:

content: 
    JSON.stringify(data) 
+0

Was ist der Unterschied zwischen den Client-Adapter-Aufrufmethoden WLResourceRequest und WL.Client.invokeProcedure? – Suhas

+0

Siehe den ersten Absatz hier: https://mobilefirstplatform.ibmcloud.com/tutorials/de/foundation/7.1/server-side-development/invoking-adapter-procedures-hybrid-client-applications/#overview –

+0

so mit WLResourceRequest wir kann auch auf externe Ressourcen zugreifen, das ist der einzige Unterschied zwischen diesen beiden Aufrufen? – Suhas

Verwandte Themen