2016-07-02 3 views
0

это я снова с другим хромым вопросом. У меня есть следующий вызов к Rattic API базы данных паролей, который работает должным образом:cURL вызов API в запросе NodeJS

curl -s -H 'Authorization: ApiKey myUser:verySecretAPIKey' -H 'Accept: text/json' https://example.com/passdb/api/v1/cred/\?format\=json 

Я попытался повторить этот вызов в NodeJS, однако следующие возвращается пустым:

var request = require('request'); 

url='https://example.com/passdb/api/v1/cred/?format=json'; 

request({ 
    url: url, 
    method: 'POST', 
    headers: [ 
     { 'Authorization': 'ApiKey myUser:verySecretAPIKey' } 
    ], 
    }, 
    function (error, response, body) { 
     if (error) throw error; 
     console.log(body); 
    } 
); 

Любая помощь приветствуется.

+1

Вы пробовали использовать 'GET'? –

+0

Yup, переменная body по-прежнему является пустой строкой (не нулевой или неопределенной):/ – Neekoy

ответ

1
  • Как было отмечено в комментариях уже, используйте GET, не POST;
  • headers должен быть объектом, а не массивом;
  • Вы не добавляете заголовок Accept.

Все вместе, попробуйте следующее:

request({ 
    url  : url, 
    method : 'GET', 
    headers : { 
    Authorization : 'ApiKey myUser:verySecretAPIKey', 
    Accept  : 'text/json' 
    }, function (error, response, body) { 
    if (error) throw error; 
    console.log(body); 
    } 
}); 
+0

Мой запрос на завивание содержит данные __- d phonenumber = 07XXXXXXX__, как я могу добавить это к запросу –

+0

@IzzoObella, используя опцию 'body' – robertklep

1

Заголовки должны быть объектами.

var request = require('request'); 

url='https://example.com/passdb/api/v1/cred/?format=json'; 

request({ 
      url: url, 
      method: 'POST', 
      headers: { 
       'Authorization': 'ApiKey myUser:verySecretAPIKey' 
      } 
     }, function (error, response, body) { 
      if (error) throw error; 
      console.log(body); 
     }); 
1

Одна вещь, которую вы можете сделать, это импортировать локон запрос в Почтальон, а затем экспортировать его в различные формы. например, nodejs:

var http = require("https"); 

var options = { 
    "method": "GET", 
    "hostname": "example.com", 
    "port": null, 
    "path": "/passdb/api/v1/cred/%5C?format%5C=json", 
    "headers": { 
    "authorization": "ApiKey myUser:verySecretAPIKey", 
    "accept": "text/json", 
    "cache-control": "no-cache", 
    "postman-token": "c3c32eb5-ac9e-a847-aa23-91b2cbe771c9" 
    } 
}; 

var req = http.request(options, function (res) { 
    var chunks = []; 

    res.on("data", function (chunk) { 
    chunks.push(chunk); 
    }); 

    res.on("end", function() { 
    var body = Buffer.concat(chunks); 
    console.log(body.toString()); 
    }); 
}); 

req.end(); 
Смежные вопросы