UNPKG

whistle

Version:

HTTP, HTTP2, HTTPS, Websocket debugging proxy

38 lines (35 loc) 1.15 kB
var util = require('../../../lib/util'); var loadService = require('../lib/proxy').loadService; var MAX_LEN = 1024 * 1024 * 6; var HTTP_RE = /https?:\/\/\S/i; module.exports = function(req, res) { var url = req.query.url; if (HTTP_RE.test(url)) { util.request({ url: url, maxLength: MAX_LEN }, function(err, body, r) { if (err) { var msg = err.code === 'EEXCEED' ? 'The size of response body exceeds 6MB' : err.message; return res.json({ec: 2, em: msg}); } var status = r.statusCode; if (status !== 200) { var em = status > 200 && status < 400 ? 'No data' : 'Request failed'; return res.json({ec: 2, em: em + ' (statusCode: ' + status + ')'}); } return res.json({ec: 0, body: body}); }); } else if (util.isString(url)) { loadService(function(err, options) { if (err) { util.sendRes(res, 500, err.stack || err); } else { req.url = '/cgi-bin/temp/get?filename=' + encodeURIComponent(url); util.transformReq(req, res, options.port); } }); } else { res.json({ec: 400, em: 'Bad url'}); } };