diff --git a/CHANGELOG b/CHANGELOG index 41a86dd..95b2919 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,7 @@ +28 July: AnyProxy 3.7.1: + + * fix a bug about deflate compression + 20 July: AnyProxy 3.7.0: * add a map-local panel on web ui, now you can easily map some request to your local files diff --git a/lib/requestHandler.js b/lib/requestHandler.js index e067dfa..ded7b22 100644 --- a/lib/requestHandler.js +++ b/lib/requestHandler.js @@ -121,6 +121,9 @@ function userRequestHandler(req,userRes){ options = userRule.replaceRequestOption(req,options) || options; options.rejectUnauthorized = false; + try{ + delete options.headers['accept-encoding']; //avoid gzipped response + }catch(e){} //update quest data reqData = userRule.replaceRequestData(req,reqData) || reqData; @@ -138,8 +141,11 @@ function userRequestHandler(req,userRes){ resHeader = util.lower_keys(resHeader); // remove gzip related header, and ungzip the content + // note there are other compression types like deflate var ifServerGzipped = /gzip/i.test(resHeader['content-encoding']); - delete resHeader['content-encoding']; + if(ifServerGzipped){ + delete resHeader['content-encoding']; + } delete resHeader['content-length']; userRes.writeHead(statusCode, resHeader); diff --git a/package.json b/package.json index 40eeea1..820db38 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "anyproxy", - "version": "3.7.0", + "version": "3.7.1", "description": "A fully configurable proxy in NodeJS, which can handle HTTPS requests perfectly.", "main": "proxy.js", "bin": {