code: def call(self):
          
  
          headers, data = self.prepare()
  
          # Check log level before logging XML, since prettifying it is
          # expensive
          if _LOG.isEnabledFor(logging.DEBUG):
              _LOG.debug("Sending %s, %s", headers, prettify(data))
  
          response = requests.post(
              self.endpoint,
              headers=headers,
              data=data.encode('utf-8'),
              **self.request_args
          )
          _LOG.debug("Received %s, %s", response.headers, response.text)
          status = response.status_code
          if status == 200:
              # The response is good. Extract the Body
              tree = XML.fromstring(response.content)
              # Get the first child of the <Body> tag. NB There should only be
              # one if the RPC standard is followed.
              body = tree.find(
                  "{http://schemas.xmlsoap.org/soap/envelope/}Body")[0]
              return body
          elif status == 500:
              # We probably have a SOAP Fault
              tree = XML.fromstring(response.content)
              fault = tree.find(
                  './/{http://schemas.xmlsoap.org/soap/envelope/}Fault'
              )
              if fault is None:
                  # Not a SOAP fault. Must be something else.
                  response.raise_for_status()
              faultcode = fault.findtext("faultcode")
              faultstring = fault.findtext("faultstring")
              faultdetail = fault.find("detail")
              raise SoapFault(faultcode, faultstring, faultdetail)
          else:
              # Something else has gone wrong. Probably a network error. Let
              # Requests handle it
              response.raise_for_status()
  
          return None
docs: Call the SOAP method on the server.
  
          Returns:
              str: the decapusulated SOAP response from the server,
                  still encoded as utf-8.
  
          Raises:
               SoapFault: if a SOAP error occurs.
               ~requests.exceptions.HTTPError: if an http error occurs.