我们正在尝试使用requestjs调用基于JSON的API,但我们从服务器收到错误。
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'
如果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);