Использование request модуля, я пытаюсь принести ответ от веб-сервиса, который имеет следующие заголовок в запросе API:Gzip декомпрессия HTTP Response
Accept-Encoding: GZIP
и соответственно , после заголовка в ответ:
Content-Encoding: GZIP
Когда я пытаюсь выполнить распаковку ответа (получить правильный читаемый ответ), используя zlib (ссылка here), я не могу этого сделать.
Код сниппета:
var options = {
url: url,
qs: params.qparams,
method: params.method,
json: params.body,
headers: {
'api_key': configkey,
'Content-Type': 'application/json',
'Accept-Encoding': 'gzip'
},
timeout: constants.request_timeout
};
request(options, function(err, response, body) {
var encoding = response.headers['content-encoding']
if (encoding && encoding.indexOf('gzip') >= 0) {
zlib.gunzip(body, function(err, dezipped) {
//ERROR : { [Error: incorrect header check] errno: -3, code: 'Z_DATA_ERROR' }
var json_string = dezipped.toString('utf-8');
var json = JSON.parse(json_string);
console.log('\nJSON ::\n',json);
});
} else {
console.log('\n\nRESPONSE IS NOT GZIPPED!');
}
}
Я получаю сообщение об ошибке здесь (как комментировал в коде), используя Zlib.
Я не мог понять, как это происходит, пытался с несколькими модулями npm, например unzipResponse и compress-buffer, и пробовал разные подходы, а также предлагал в разных местах для обработки gzip.
Если кто-то может помочь в решении этого вопроса, я буду очень благодарен.