diff --git a/lib/request/request.js b/lib/request/request.js index 9e0347bfdec..c32ca13b3b5 100644 --- a/lib/request/request.js +++ b/lib/request/request.js @@ -18,25 +18,25 @@ var analytics = require('../analytics'); function makeRequest(payload) { return new Promise(function (resolve, reject) { var body = payload.body; - var bodyStream; + var data; delete payload.body; if (body) { - // always compress going upstream - bodyStream = new stream.Readable(); var json = JSON.stringify(body); - bodyStream.push(json); - bodyStream.push(null); - bodyStream = bodyStream.pipe(zlib.createGzip()); + if (json.length < 1e4) { + debug(JSON.stringify(body, '', 2)); + } + + // always compress going upstream + data = zlib.gzipSync(json); snykDebug('sending request to:', payload.url); snykDebug('request body size:', json.length); + snykDebug('gzipped request body size:', data.length); if (!payload.url.endsWith('/analytics/cli')) { analytics.add('payloadSize', json.length); - } - if (json.length < 1e4) { - debug(JSON.stringify(body, '', 2)); + analytics.add('gzippedPayloadSize', data.length); } if (!payload.headers) { @@ -44,6 +44,7 @@ function makeRequest(payload) { } payload.headers['content-encoding'] = 'gzip'; + payload.headers['content-length'] = data.length; } var url = parse(payload.url); @@ -89,7 +90,7 @@ function makeRequest(payload) { options.rejectUnauthorized = false; } - needle.request(method, url, bodyStream, options, function (err, res, body) { + needle.request(method, url, data, options, function (err, res, body) { debug(err); debug('response (%s): ', (res || {}).statusCode, JSON.stringify(body)); if (err) {