docs: function (unused, req) {
              this.$raiseEvent({
                  name : "request",
                  req : req
              });
  
              req.beginDownload = (new Date()).getTime();
  
              // as postData can possibly be changed by filters, we compute the requestSize only after filters have been
              // called:
              req.requestSize = ((req.method == "POST" || req.method == "PUT") && req.data) ? req.data.length : 0;
  
              // PROFILING // req.profilingId = this.$startMeasure(req.url);
  
              try {
                  this._prepareTransport(req);
              } catch (ex) {
                  // There was an error in this method - let's create a callback to notify
                  // the caller in the same way as for other errors
                  (require("./Timer")).addCallback({
                      fn : this._handleResponse,
                      scope : this,
                      delay : 10,
                      args : {
                          isInternalError : true,
                          reqId : req.id,
                          errDescription : ex.description || ex.message || (ex.name + ex.number)
                      }
                  });
              }
  
              return req.id;
          }