node.js请求js与curl相比失败

node.js requestjs fails vs curl

本文关键字:js 失败 请求 node curl      更新时间:2023-11-19

我们试图使用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);