'The function for retrieving a raw HTML result via HTTP.
Args:
url: The URL to retrieve.
retry_count: The number of times to retry in case socket errors,
timeouts, connection resets, etc. are encountered.
headers: The HTTP headers dictionary. The Accept header defaults
to \'application/rdap+json\'.
request_type: \'GET\' or \'POST\'
form_data: Dictionary of form POST data
Returns:
String: The raw data.
Raises:
HTTPLookupError: The HTTP lookup failed.'

def get_http_raw(self, url=None, retry_count=3, headers=None, request_type='GET', form_data=None):

    if (headers is None):
        headers = {'Accept': 'text/html'}
    if form_data:
        form_data = urlencode(form_data)
        try:
            form_data = bytes(form_data, encoding='ascii')
        except TypeError:
            pass
    try:
        log.debug('HTTP    query    for    {0}    at    {1}'.format(self.address_str, url))
        try:
            conn = Request(url=url, data=form_data, headers=headers, method=request_type)
        except TypeError:
            conn = Request(url=url, data=form_data, headers=headers)
        data = self.opener.open(conn, timeout=self.timeout)
        try:
            d = data.readall().decode('ascii', 'ignore')
        except AttributeError:
            d = data.read().decode('ascii', 'ignore')
        return str(d)
    except (URLError, socket.timeout, socket.error) as e:
        try:
            if (not isinstance(e.reason, (socket.timeout, socket.error))):
                raise HTTPLookupError('HTTP    lookup    failed    for    {0}.'.format(url))
        except AttributeError:
            pass
        log.debug('HTTP    query    socket    error:    {0}'.format(e))
        if (retry_count > 0):
            log.debug('HTTP    query    retrying    (count:    {0})'.format(str(retry_count)))
            return self.get_http_raw(url=url, retry_count=(retry_count - 1), headers=headers, request_type=request_type, form_data=form_data)
        else:
            raise HTTPLookupError('HTTP    lookup    failed    for    {0}.'.format(url))
    except HTTPLookupError as e:
        raise e
    except Exception:
        raise HTTPLookupError('HTTP    lookup    failed    for    {0}.'.format(url))
