Nodejs获得一个不完整的响应主体

时间:2018-05-06 22:20:53

标签: json node.js api http

我正在使用http模块向api发送请求。所以我的响应体非常大,而且我变得不完整了,当我试图解析为javascript对象时,我收到一个错误,即json无效。

这是我的代码。

function sendPostRequest(method, url, data, callback) {


    if (typeof  data === 'undefined') {
        data = {};
    }

    var data = querystring.stringify(data);


    var post_options = {
        host: API.Host,
        port: API.Port,
        path: API.Prefix + url,
        method: method,
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'Authorization': 'Bearer ' + API_USER.token
        }
    };


    var post_req = http.request(post_options, function (res) {
        res.setEncoding('utf8');
        res.on('data', function (chunk) {
            callback(chunk);
        });
    });

    // post the data
    post_req.write(data);
    post_req.end();
}


sendPostRequest('GET', 'user/get_accounts', data, function (res) {
        res = JSON.parse(res);
        mainWindow.webContents.send('user:account', res);
        return;
    }, true);

请帮忙解决这个问题!谢谢!

1 个答案:

答案 0 :(得分:2)

如果数据很大且以块(不完整的json)提供,那么你可能会更幸运:

var post_req = http.request(post_options, function (res) {
    res.setEncoding('utf8');
    let rawData = '';
    res.on('data', (chunk) => { rawData += chunk; });
    res.on('end', () => {
      callback(rawData);
    });
});