12345678910111213141516171819202122232425262728293031323334353637383940 |
- 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;
- };
|