diff --git a/lib/http.js b/lib/http.js index 438017a..d087a42 100644 --- a/lib/http.js +++ b/lib/http.js @@ -3,6 +3,7 @@ var _ = require('./utils') var IS_BROWSER = typeof window === 'object' && window var JSON_MIME = /application\/json/i var http = resolveModule() +const zlib = require('zlib'); module.exports = HttpClient @@ -81,6 +82,21 @@ function resolveModule () { function requestWrapper (request) { return function requester (options, cb) { - return request(mapOptions(options), mapResponse(cb)) + let httpRequest = request(mapOptions(options), mapResponse(cb)); + httpRequest.on('response', function(response) { + switch (response.headers['content-encoding']) { + // or, just use zlib.createUnzip() to handle both cases + case 'gzip': + console.log("gzip"); + response.pipe(zlib.createGunzip()).pipe(response); + break; + case 'deflate': + response.pipe(zlib.createInflate()).pipe(response); + break; + default: + break; + } + }); + return httpRequest; } }