2017-02-14 74 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