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

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