code: func (r *Session) DoRequest(service string, method string, args []interface{}, options *sl.Options, pResult interface{}) error {
  	if r.TransportHandler == nil {
  		r.TransportHandler = getDefaultTransport(r.Endpoint)
  	}
  
  	return r.TransportHandler.DoRequest(r, service, method, args, options, pResult)
  }
docs: // DoRequest hands off the processing to the assigned transport handler. It is
  // normally called internally by the service objects, but is exported so that it can
  // be invoked directly by client code in exceptional cases where direct control is
  // needed over one of the parameters.
  //
  // For a description of parameters, see TransportHandler.DoRequest in this package