2016-04-03 49 views
3

我們試圖使用requestjs調用基於JSON的API,但是我們從服務器收到錯誤。node.js requestjs失敗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的回報,沒有任何問題,相同的呼叫。

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

,什麼是錯誤? – MinusFour

+0

不要傳入標題下的用戶名/密碼,您應該調用該權限 – 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);