2016-04-03 3 views
3

Мы пытаемся вызвать API на основе JSON, используя requestjs, но мы получаем сообщение об ошибке с сервера.node.js requestjs failed vs curl

request.get({ 
      url: 'https://api.myapi.com', 
      timeout: 120000, 
      headers: { 
       username: 'myuser', 
       password: 'mypassword' 
      } 
     }, function (err, result) { 
      ... 
     } 
) 

Ошибка:

java.lang.IndexOutOfBoundsException: Index: 0 
    java.util.Collections$EmptyList.get(Collections.java:4454) 
    com.itemmaster.api.rest.svc.authentication.OpenSSOUserAuthServiceImpl.authenticate(OpenSSOUserAuthServiceImpl.java:159) 
    com.itemmaster.api.rest.profiler.SecurityProfiler.profile(SecurityProfiler.java:58) 

Во время работы один и тот же вызов, используя свертыванию возвращается без любого вопроса.

curl --header "username:myuser" --header "password:mypassword" 'https://api.myapi.com' 
+1

И что это ошибка? – MinusFour

+0

не передавайте имя пользователя и пароль в заголовках, вы должны называть это auth – JordanHendrix

ответ

0

Если команда curl работает с предоставленным вами синтаксисом, следующий код должен работать в node.js.

var request = require('request'); 
 

 
var headers = { 
 
    'username': 'myuser', 
 
    'password': 'mypassword' 
 
}; 
 

 
var options = { 
 
    url: 'https://api.myapi.com', 
 
    headers: headers 
 
}; 
 

 
function callback(error, response, body) { 
 
    if (!error && response.statusCode == 200) { 
 
     console.log(body); 
 
    } 
 
} 
 

 
request(options, callback);