Skip to content

Instantly share code, notes, and snippets.

@Ellisonlee
Forked from kira1928/node_http_proxy.js
Created July 10, 2016 14:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ellisonlee/41f9ed08c6d20d7d9cdb12c73617d165 to your computer and use it in GitHub Desktop.
Save Ellisonlee/41f9ed08c6d20d7d9cdb12c73617d165 to your computer and use it in GitHub Desktop.
simple nodejs http proxy
var http = require("http");
var url = require("url");
var proxy = http.createServer(function(request, response) {
request.headers.Connection = "close";
delete request.headers["proxy-connection"];
delete request.headers["upgrade-insecure-requests"];
delete request.headers['accept-encoding'];
var ori_url = url.parse(request.url);
var options = {
method: request.method,
path: ori_url.path,
hostname: ori_url.hostname,
port: ori_url.port | 80,
headers: request.headers
};
var req = http.request(options, function(res) {
console.log(request.url);
res.pipe(response);
});
switch (request.method) {
case "POST":
request.on('data', function (data) {
req.write(data);
});
req.on('end', function () {
req.end();
});
break;
case "GET":
default:
req.end();
break;
}
}).listen(9000);
@kira1928
Copy link

我又改了一下,request.headers.Connectionc好像不应该大写...

@kira1928
Copy link

POST方法也没试过,只有简单GET的request试过没问题。
这个例子很简陋,参考需谨慎。。。

@kira1928
Copy link

port: ori_url.port | 80 => port: ori_url.port || 80

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment