2017-07-31 4 views
0

Je suis en train d'appeler une autre API dans Bluemix ou toute autre méthode post HTTPS à l'aide d'un script de passerelle dans IBM Bluemix (API Connect) en utilisant le code ci-dessous:Comment appeler une méthode https POST en utilisant gatewayscript dans IBM Bluemix APIConnect

var urlopen = require('urlopen'); 
var options = { 
      target: 'https://pokemons.mybluemix.net/api/pokemons/1', 
      method: 'POST', 
      headers: {}, 
      contentType: 'application/json', 
      timeout: 60, 
      data: {"Message": "DataPower GatewayScript"} 

}; 

urlopen.open(options, function(error, response) { 
    if (error) { 
    // an error occurred during the request sending or response header parsing 
    session.output.write("urlopen error: "+JSON.stringify(error)); 
    } else { 
    // get the response status code 
    var responseStatusCode = response.statusCode; 
    var responseReasonPhrase = response.reasonPhrase; 
    console.log("Response status code: " + responseStatusCode); 
    console.log("Response reason phrase: " + responseReasonPhrase); 
    // reading response data 
    response.readAsBuffer(function(error, responseData){ 
     if (error){ 
     throw error ; 
     } else { 
     session.output.write(responseData) ; 
     apim.output('application/json'); 
     } 
    }); 
    } 
}); 

Mais je reçois l'erreur suivante:

{ 
    "httpCode": "500", 
    "httpMessage": "Internal Server Error", 
    "moreInformation": "URL open: Cannot create connection to 'https://pokemons.mybluemix.net/api/pokemons/1', status code: 7" 
} 

On dirait qu'il ya une question avec les connexions SSL. Si oui, comment puis-je obtenir les détails SSL pour le catalogue Sandbox par défaut dans IBM Bluemix API Connect? Ou, comment puis-je effectuer les appels HTTPS POST à ​​l'URL exemple ci-dessus?

Répondre

0

Depuis la version 5.0.6:

IBM API Connect 5.0.x

Forward SSLProxy (and Crypto) is replaced with SSLClient. These new profiles support ephemeral ciphers (DHE and ECDHE), perfect forward secrecy, and Server Name Indication (SNI) extension. Note that DHE ciphers in DataPower SSLServerProfile use 2048-bit DH parameters (as server) and accept 1024-bit DH parameters (as client).

Afin que vous puissiez exemple précis de travailler sur l'API Connect utilisant le protocole HTTPS, vous devez spécifier le sslClientProfile.

Par exemple:

var urlopen = require('urlopen'); 
var options = { 
      target: 'https://pokemons.mybluemix.net/api/pokemons/1', 
      method: 'POST', 
      headers: {}, 
      contentType: 'application/json', 
      timeout: 60, 
      sslClientProfile: 'webapi-sslcli-mgmt', 
      data: {"Message": "DataPower GatewayScript"} 

};