I'm trying to create a proxy server to pass HTTP GET
requests from a client to a third party website (say google). My proxy just needs to mirror incoming requests to their corresponding path on the target site, so if my client's requested url is:
127.0.0.1/images/srpr/logo11w.png
the following resource should be served:
http://www.google.com/images/srpr/logo11w.png
here is what I came up with:
http.createServer(onRequest).listen(80);
function onRequest (client_req, client_res) {
client_req.addListener("end", function() {
var options = {
hostname: 'www.google.com',
port: 80,
path: client_req.url,
method: 'GET'
};
var req=http.request(options, function(res) {
var body;
res.on('data', function (chunk) {
body += chunk;
});
res.on('end', function () {
client_res.writeHead(res.statusCode, res.headers);
client_res.end(body);
});
});
req.end();
});
}
it works well with html pages, but for other types of files, it just returns a blank page or some error message from target site (which varies in different sites).