'Set up URL and HTML and call _opener to make request'

def _connect(self, method, uri, body=''):

    url = ''
    prefix = self._get_uri_prefix()
    if (prefix not in uri):
        url = prefix
    url += uri
    header = {'Content-Type': 'application/xml;    charset=utf-8'}
    auth_key = ('%s:%s' % (self.configuration.san_login, self.configuration.san_password))
    auth_key = base64.encode_as_text(auth_key)
    header['Authorization'] = ('Basic    %s' % auth_key)
    LOG.debug('Connect:    %(method)s    %(url)s    %(body)s', {'method': method, 'url': url, 'body': body})
    using_secondary = 0
    response = {}
    response['status'] = 0
    response['location'] = ''
    response['content'] = ''
    primary_ip = self._get_ise_primary_ip()
    secondary_ip = self._get_ise_secondary_ip()
    args = {}
    args['method'] = method
    args['url'] = url
    args['body'] = body
    args['header'] = header
    retries = self.configuration.ise_connection_retries
    while True:
        response = self._wait_for_completion(self._help_call_opener, args, retries)
        if (response['status'] != 0):
            self.newquery = using_secondary
            return response
        if (using_secondary == 0):
            if (secondary_ip is ''):
                LOG.error('Connection    to    %s    failed    and    no    secondary!', primary_ip)
                RaiseXIODriverException()
            url = url.replace(primary_ip, secondary_ip)
            LOG.debug('Trying    secondary    IP    URL:    %s', url)
            using_secondary = 1
            continue
        break
    LOG.error('Could    not    connect    to    %(primary)s    or    %(secondary)s!', {'primary': primary_ip, 'secondary': secondary_ip})
    RaiseXIODriverException()
