docs: function httpGet(uri, params, callback)
  {
      logger.dev("httpGet:", core.role, uri, params, callback);
  
      if (!(params instanceof HttpRequest)) {
          if (typeof params == "function") callback = params, params = null;
          logger.dev("httpNew:", core.role, uri, params, callback);
          params = new HttpRequest(params);
      }
  
      params.init(uri);
      var opts = params.open(callback);
      if (!opts) return;
  
      try {
          var mod = opts.protocol == "https:" ? https : http;
          var req = mod.request(opts, function(res) {
              res.on("data", function(chunk) {
                  params.onData(res, chunk);
              });
  
              res.on("end", function() {
                  params.onEnd(res, callback);
              });
  
          }).on('error', function(err) {
              params.onError(err, callback);
          });
      } catch(e) {
          params.onError(e, callback);
          return;
      }
  
      if (params.httpTimeout) {
          req.setTimeout(params.httpTimeout, function() { req.abort(); });
      }
      if (params.postdata) {
          req.write(params.postdata);
      } else
      if (params.poststream) {
          params.poststream.pipe(req);
          return req;
      }
      req.end();
      return req;
  }