web-dev-qa-db-fra.com

demande npm avec en-têtes et auth

J'essaie d'accéder à une API en utilisant "request" npm. Cette API nécessite un en-tête "content-type" et une authentification de base. voici ce que j'ai fait jusqu'à présent. 

var request = require('request');
var options = {
  url: 'https://XXX/index.php?/api/V2/get_case/2',
  headers: {
    'content-type': 'application/json'
  },

};
request.get(options, function(error, response, body){
console.log(body);
}

).auth("[email protected]","password",false);

lors de l'exécution de ce nœud à l'aide d'un nœud, un message d'erreur indiquant un nom d'utilisateur et un mot de passe invalides s'affiche. J'ai validé les mêmes API, authentification et en-tête à l'aide de CURL avec la commande ci-dessous et il a donné une réponse HTTP attendue. 

curl -X GET -H "type de contenu: application/json" -u [email protected]: mot de passe " https: //XXX/index.php?/api/V2/get_case/2 "

Veuillez suggérer la bonne façon de coder une demande avec auth et en-tête.


Voici mon code de mise à jour

var auth = new Buffer("[email protected]" + ':' + "password").toString('base64');
     var req = {
                    Host: 'https://URL',
                    path: 'index.php?/api/v2/get_case/2',
                    method: 'GET',
                    headers: {
                        Authorization: 'Basic ' + auth,
                        'Content-Type': 'application/json'
                              }
                };
    request(req,callback);
    function callback(error, response, body) {
      console.log(body);
    }

Je vois «non défini» dans ma console. pouvez-vous m'aider ici?

8
Praveen Kumar

Voici comment cela a fonctionné pour moi

 var auth = new Buffer(user + ':' + pass).toString('base64');
 var req = {
     Host: 'https://XXX/index.php?/api/V2/get_case/2',
     path: path,
     method: 'GET',
     headers: {
         Authorization: 'Basic ' + auth,
         'Content-Type': 'application/json'
     }
 };
19
request(url, {
  method: "POST",
  auth: {
    user: this.user,
    pass: this.pass
  }
}, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log('body:', body);
    } else {
      console.log('error', error, response && response.statusCode);
    }
});
1
Ray Hulha