def request(self, host, handler, request_body, verbose=0): request = "POST %s HTTP/1.0\n" % (handler, ) request += "Content-Length: %i\n" % len(request_body) request += "Content-Type: text/xml\n" host, extra_headers, x509 = self.get_host_info(host) if extra_headers: request += "Authorization: %s\n" \ % (dict(extra_headers)["Authorization"],) request += "\n" + request_body response = HTTPCaller()(request, handle_errors=self.handleErrors) errcode = response.getStatus() errmsg = response.getStatusString() # This is not the same way that the normal transport deals # with the headers. headers = response.getHeaders() if errcode != 200: raise xmlrpclib.ProtocolError(host + handler, errcode, errmsg, headers) return self._parse_response(StringIO.StringIO(response.getBody()), sock=None)
def request(self, host, handler, request_body, verbose=0): request = "POST %s HTTP/1.0\n" % (handler,) request += "Content-Length: %i\n" % len(request_body) request += "Content-Type: text/xml\n" host, extra_headers, x509 = self.get_host_info(host) if extra_headers: request += "Authorization: %s\n" \ % (dict(extra_headers)["Authorization"],) request += "\n" + request_body response = HTTPCaller()(request, handle_errors=self.handleErrors) errcode = response.getStatus() errmsg = response.getStatusString() # This is not the same way that the normal transport deals # with the headers. headers = response.getHeaders() if errcode != 200: raise xmlrpclib.ProtocolError( host + handler, errcode, errmsg, headers ) return self._parse_response( StringIO.StringIO(response.getBody()), sock=None)
def request(self, host, handler, request_body, verbose=0): request = "POST %s HTTP/1.0\n" % (handler,) request += "Content-Length: %i\n" % len(request_body) request += "Content-Type: text/xml\n" host, extra_headers, _x509 = self.get_host_info(host) if extra_headers: request += "Authorization: %s\n" % ( dict(extra_headers)["Authorization"],) request += "\n" if isinstance(request_body, bytes) and str is not bytes: # Python 3 request = request.encode("ascii") request += request_body if not isinstance(request, str) and str is not bytes: request = request.decode("utf-8") response = HTTPCaller()(request, handle_errors=self.handleErrors) errcode = response.getStatus() errmsg = response.getStatusString() # This is not the same way that the normal transport deals with the # headers. headers = response.getHeaders() if errcode != 200: # pragma: no cover raise xmlrpclib.ProtocolError( host + handler, errcode, errmsg, headers ) content = 'HTTP/1.0 ' + errmsg + '\n\n' + response.getBody() res = HTTPResponse(FakeSocket(content)) res.begin() return self.parse_response(res)