2017-02-14 82 views
0

我正在开发一个简单的nodejs应用程序。我正在尝试从该应用程序进行REST API调用,REST API具有基本身份验证。我得到错误“ERRORError:getaddrinfo ENOTFOUND”尝试使用stackoverflow中建议的选项,但无法使其工作。任何人都可以请帮我this..Here是我使用`从节点调用第三方休息api

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

+0

可能重复的[Node.js getaddrinfo ENOTFOUND](http://stackoverflow.com/questions/17690803/node-js-getaddrinfo-enotfound) – ThomasThiebaud

+0

托马斯..我已经尝试了所有可能的方式,我发现在stackoverflow .. 。我无法ping通..我尝试ping www.google.com。为所有ping获取连接超时错误 – user1948228

+0

您能分享网址吗? – ThomasThiebaud

回答

0

www.google.com不是有效的URL。浏览器让你输入它(这会让人觉得它应该可以在任何情况下工作),但这仅仅是因为在浏览器中,浏览器猜测你打算输入http://www.google.com

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

+0

@ user1948228 - 这是否回答您的问题?如果确实如此,则可以通过点击答案左侧的绿色复选标记来向社区表明。这也将为您在堆栈溢出时遵循适当的过程赢得一些声望点。 – jfriend00