3

我们正在尝试使用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'
4

1 回答 1

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

于 2018-03-04T17:36:16.930 回答