code: def send(self):
          
  
          # Pre-process the request
          try:
              self.procstack.proc_request(self)
          except exc.ShortCircuit, e:
              self._debug("Request pre-processing short-circuited")
  
              # Short-circuited; we have an (already processed) response
              return e.response
  
          self._debug("Sending %r request to %r (body %r, headers %r)",
                      self.method, self.url, self.body, self.headers)
  
          # Issue the request
          (resp, content) = self.client.request(self.url, self.method,
                                                self.body, self.headers,
                                                self.max_redirects)
  
          # Save the body in the response
          resp.body = content
  
          # Do any processing on the response that's desired
          try:
              self.proc_response(resp)
          except:
              # Process the exception
              result = self.procstack.proc_exception(*sys.exc_info())
              if not result:
                  # Not handled, re-raise it
                  raise
              else:
                  # Handled and we have a fully post-processed response
                  return result
  
          # Return the response, post-processing it
          return self.procstack.proc_response(resp)
docs: Issue the request.
  
          Uses httplib2.Http support for handling redirects.  Returns an
          httplib2.Response, which may be augmented by the
          proc_response() method.
  
          Note that the default implementation of proc_response() causes
          an appropriate exception to be raised if the response code is
          >= 400.