'Replace the xmlrpc request function.
Process xmlrpc request via requests library.
Args:
host: Target host
handler: Target PRC handler.
request_body: XML-RPC request body.
verbose: Debugging flag.
Returns:
Parsed response.
Raises:
RequestException: Error in requests'

def request(self, host, handler, request_body, verbose=0):

    if verbose:
        self._debug()
    if (not self._check_ssl_cert):
        disable_warnings()
    headers = {'User-Agent': self.user_agent, 'Content-Type': 'text/xml'}
    if self._use_https:
        url = 'https://{host}/{handler}'.format(host=host, handler=handler)
    else:
        url = 'http://{host}/{handler}'.format(host=host, handler=handler)
    try:
        if (self._authtype == 'basic'):
            response = requests.post(url, data=request_body, headers=headers, verify=self._check_ssl_cert, auth=HTTPBasicAuth(self._username, self._password), proxies=self._proxies)
        elif (self._authtype == 'digest'):
            response = requests.post(url, data=request_body, headers=headers, verify=self._check_ssl_cert, auth=HTTPDigestAuth(self._username, self._password), proxies=self._proxies)
        else:
            response = requests.post(url, data=request_body, headers=headers, verify=self._check_ssl_cert, proxies=self._proxies)
        response.raise_for_status()
    except RequestException as error:
        raise xmlrpc_client.ProtocolError(url, error.message, traceback.format_exc(), response.headers)
    return self.parse_response(response)
