2016-04-03 7 views
3

Wir versuchen, eine JSON-basierte API mit requestjs aufzurufen, aber wir erhalten einen Fehler vom Server.node.js requestjs schlägt vs curl

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

Der Fehler:

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) 

Während der gleichen Anruf mit curl kehrt ohne Problem laufen.

+1

Und was ist der Fehler? – MinusFour

+0

übergeben Sie nicht den Benutzernamen/das Passwort unter den Headern, sollten Sie diese Auth anrufen – JordanHendrix

Antwort

0

Wenn der Befehl curl mit der von Ihnen angegebenen Syntax arbeitet, sollte der folgende Code in node.js funktionieren.

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