var http = require('http'); var https = require('https'); var parse = require('url').parse; var httpLibs = { 'http:': http, 'https:': https }; module.exports = function(url, callback) { var parsed = parse(url); var httpLib = httpLibs[parsed.protocol]; if (!httpLib) { var err = new Error('Invalid URL: ' + url); if (callback) { callback(err); } else { throw err; } return; } var req = httpLib.get(parsed); if (callback) { req.on('response', function(res) { if (res.statusCode !== 200) { callback(new Error('status code ' + res.statusCode)); return; } var body = ''; res.setEncoding('utf8'); res.on('data', function(chunk) { body += chunk; }); res.on('end', function() { callback(null, body); }); }); req.on('error', callback); } return req; };