2013-02-23 68 views
3

当使用https连接到使用基本身份验证的twitter流api时,出现socket hang up错误。我认为在进行身份验证时发生错误。当连接到twitter api时,Node.js套接字挂起错误

var https = require("https"); 
var options = { 
     host: 'stream.twitter.com', 
     path: '/1.1/statuses/filter.json?track=bieber', 
     method: 'GET', 
     headers: { 
       "Authorization": "Basic " + new Buffer('UserName' + ":" + 'Password').toString("base64") 
     } 
}; //end of options 


var request = https.request(options, function(response){ 
      var body = ''; 
      console.log('STATUS: ' + response.statusCode); 
      console.log('HEADERS: ' + JSON.stringify(response.headers)); 

      response.on("data", function(chunk){ 
        var tweet = JSON.parse(chunk); 
        console.log("Tweet " + tweet.text); 
      }); // end of data 

      response.on("end", function(){ 
       console.log("Disconnected!!"); 
      }); // end of end 

      response.on("error", function(){ 
       console.log("error occured"); 
      }); // end of error 
}); // end of request 

request.on("error",function(error){ 
     console.log("Error: " + error.message); 
       }); // end of error 

当我尝试访问此网址时,它工作正常。

https://username:[email protected]/1.1/statuses/filter.json?track=twitter 
+1

此错误已被列入0.8.20的NodeJS(你可以在看到https://raw.github.com/joyent/node/v0。 8.20 /更新日志)。它发生在套接字连接结束时。我使用与以前的Node版本完美配合的代码尝试了这个错误。 – sgmonda 2013-02-24 11:37:49

回答

5

变化https.request(options, function(response){ }https.get(options, function(response){ }感谢Darrenlooby在IRC的NodeJS指点一下。

+0

有谁知道原因? – LeeGee 2016-11-10 09:59:20