3

socket hang up使用 https 通过基本身份验证连接到 Twitter 流式传输 API 时出现错误。我认为在进行身份验证时会发生错误。

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:password@stream.twitter.com/1.1/statuses/filter.json?track=twitter
4

2 回答 2

5

更改https.request(options, function(response){ }https.get(options, function(response){ } 感谢 nodejs IRC 上的 Darrenlooby 指出这一点。

于 2013-02-24T11:30:00.210 回答
3

您可以使用 https.request,但请确保添加:

request.end();

request返回的对象在哪里https.request

有关示例,请参见http://nodejs.org/api/https.html#https_https_request_options_callback 。

我有同样的问题,这解决了它:)

于 2013-06-08T20:23:15.030 回答