docs: def _requestresponse(self, method, url, body=None, headers={}):
          """Internal method to perform request and verify reponse.
  
          @param method: name of the method to use (e.g. 'GET')
          @param url   : remote URL to query
  
          @type  method: L{str}
          @type  url   : L{str}
  
          @returns: L{str} response from server query
  
          @raises RuntimeError: if query is unsuccessful
          """
          try:
              self.request(method, url)
              response = self.getresponse()
          except Exception,e:
              raise RuntimeError("Unable to query server %s: %s\n\n"
                                 "Perhaps you need a valid proxy credential?\n"
                                 % (self.host, e))
          if response.status != 200:
              raise RuntimeError("Server returned code %d: %s%s"
                                 % (response.status, response.reason,
                                    response.read()))
          return response