大型restful JSON文件上的Nodejs https.get仅返回前几行/第一个块

时间:2014-07-28 16:23:17

标签: javascript node.js https get

下面的代码可以有效地获取文件,但似乎只能翻转它的1/4,我注意到数据事件只触发一次,然后立即触发结束事件,所以它似乎只是得到了第一块并且返回它并且没有继续得到其余的,这让我感到困惑,我做错了什么?以下也是正在发送的标题。

var urlObj = require('url');
var http = require('http');
var https = require('https');
var fs = require('fs');
//var Buffer = require('buffer');
var contents = "";

function requestData(url)
{
    var options = 
    {
      host: url,
      port: 8443,
      path: params,
      method: 'GET',
      headers: {'Content-Type' : 'application/json','Content-Length':Buffer.byteLength(contents, 'utf8')},
      secureProtocol: 'SSLv3_method',
      strictSSL: false,
      rejectUnauthorized: false
    };

    var reqGet = https.get(options,function(res)
    {
        console.log("headers: ", res.headers);
        res.setEncoding = 'utf8';
        res.on("data", function(c)
        {
            console.log(c.toString());
            contents += c.toString();
        });
        res.on("end", function () 
        {
            console.log(contents);
            writeContents(contents);
        });
        res.on('error', function(err) 
        {
            console.log('error: '+err);
        });
    });
}
requestData(url);

接头:

{ server: 'Apache-Coyote/1.1',
 'JSESSIONID=sessionId; Path=/; Secure; HttpOnly' ],
 'x-ausername': 'anonymous',
 'cache-control': 'no-cache, no-store, no-transform',
 'content-type': 'application/json;charset=UTF-8',
 'transfer-encoding': 'chunked',
 date: 'Mon, 28 Jul 2014 16:08:58 GMT' }
编辑:没关系,看起来像是一个标题问题并且与我的登录授权有关,匿名似乎只能获得3个列表,我现在正在寻找的是如何通过我的登录状态: (X-AUSERNAME: nameX-Seraph-LoginReason: OK。有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

需要添加headers:{'Authorization':[base64 encoded username+pass]}才能获得正确的登录授权。万一其他人遇到这个问题。