从节点呼叫第三方休息api

时间:2017-02-14 07:28:08

标签: node.js rest http basic-authentication

我正在开发一个简单的nodejs应用程序。我正在尝试从该应用程序进行REST API调用,REST API具有基本身份验证。我收到错误“ERRORError:getaddrinfo ENOTFOUND”尝试使用stackoverflow中建议的选项,但无法使其正常工作。任何人都可以请帮助我..这是我使用的代码`

var http = require('http');

var url = 'someurl';
var username = 'username';
var password = 'password';
var optionsget = {
  host: 'someurl',
  method: 'GET',
  auth: username + ':' + password,
  headers: {
     'Accept': 'application/json',
     'Content-Type': 'application/json'
  }
};

console.log('Do the GET call');

// do the GET request
var reqGet = http.get(optionsget, function(res) {
    console.log("Hii");
    console.log("statusCode: ", res.statusCode);

    res.on('data', function(d) {
        console.info('GET result:\n');
        process.stdout.write(d);
        console.info('\n\nCall completed');
    });

});

reqGet.end();
reqGet.on('error', function(e) {
    console.error("ERROR" +e);
});

提前致谢
问候
VHC

1 个答案:

答案 0 :(得分:0)

www.google.com不是有效的网址。浏览器允许您键入它(这往往会让人们认为它应该适用于所有情况),但这只是因为在幕后,浏览器猜测您打算键入http://www.google.com

http模块需要完全限定的URL,例如http://www.google.com,或者它要求您在options对象中单独指定主机和路径以及协议。但是,如果您只是要传递一个URL,那么它需要是一个完整的URL。详情请见the node.js doc