'Queries Delicious.com for information, specified by (query) path.
@param path: The HTTP query path.
@type path: str
@param host: The host to query, default: "delicious.com".
@type host: str
@param user: The Delicious.com username if any, default: None.
@type user: str
@param password: The Delicious.com password of user, default: None.
@type password: unicode/str
@param use_ssl: Whether to use SSL encryption or not, default: False.
@type use_ssl: bool
@return: None on errors (i.e. on all HTTP status other than 200).
On success, returns the content of the HTML response.'

def _query(self, path, host='delicious.com', user=None, password=None, use_ssl=False):

    opener = None
    handlers = []
    if (user and password):
        pwd_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
        pwd_mgr.add_password(None, host, user, password)
        basic_auth_handler = urllib2.HTTPBasicAuthHandler(pwd_mgr)
        handlers.append(basic_auth_handler)
    if self.http_proxy:
        proxy_handler = urllib2.ProxyHandler({'http': ('http://%s' % self.http_proxy)})
        handlers.append(proxy_handler)
    if handlers:
        opener = urllib2.build_opener(*handlers)
    else:
        opener = urllib2.build_opener()
    opener.addheaders = [('User-agent', self.user_agent)]
    data = None
    tries = self.tries
    if use_ssl:
        protocol = 'https'
    else:
        protocol = 'http'
    url = ('%s://%s%s' % (protocol, host, path))
    while (tries > 0):
        try:
            f = opener.open(url)
            data = f.read()
            f.close()
            break
        except urllib2.HTTPError as e:
            if (e.code == 301):
                raise DeliciousMovedPermanentlyWarning, ('Delicious.com    status    %s    -    url    moved    permanently' % e.code)
            if (e.code == 302):
                raise DeliciousMovedTemporarilyWarning, ('Delicious.com    status    %s    -    url    moved    temporarily' % e.code)
            elif (e.code == 401):
                raise DeliciousUnauthorizedError, ('Delicious.com    error    %s    -    unauthorized    (authentication    failed?)' % e.code)
            elif (e.code == 403):
                raise DeliciousForbiddenError, ('Delicious.com    error    %s    -    forbidden' % e.code)
            elif (e.code == 404):
                raise DeliciousNotFoundError, ('Delicious.com    error    %s    -    url    not    found' % e.code)
            elif (e.code == 500):
                raise Delicious500Error, ('Delicious.com    error    %s    -    server    problem' % e.code)
            elif ((e.code == 503) or (e.code == 999)):
                raise DeliciousThrottleError, ('Delicious.com    error    %s    -    unable    to    process    request    (your    IP    address    has    been    throttled/blocked)' % e.code)
            else:
                raise DeliciousUnknownError, ('Delicious.com    error    %s    -    unknown    error' % e.code)
            break
        except urllib2.URLError as e:
            time.sleep(self.wait_seconds)
        except socket.error as msg:
            time.sleep(self.wait_seconds)
        tries -= 1
    return data
