public List getSubscriptions() {
        clearResultMetaInformation();
        List subscriptions = new ArrayList();
        StringBuffer result = new StringBuffer();

        GetMethod get = new GetMethod(apiEndpoint + DeliciousConstants.INBOX_SUBS);
        get.setDoAuthentication(true);

        try {
            httpResult = httpClient.executeMethod(get);
            checkNotAuthorized(httpResult);
            logger.debug("Result: " + httpResult);
            if (get.getResponseBodyAsStream() != null) {
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(get.getResponseBodyAsStream(), DeliciousUtils.UTF_8));
                String input;
                while ((input = bufferedReader.readLine()) != null) {
                    result.append(input).append(DeliciousUtils.LINE_SEPARATOR);
                }

                get.releaseConnection();

                Document document = documentBuilder.parse(new InputSource(new StringReader(result.toString())));
                NodeList subItems = document.getElementsByTagName(DeliciousConstants.SUB_TAG);
                if (subItems != null && subItems.getLength() > 0) {
                    for (int i = 0; i < subItems.getLength(); i++) {
                        Node subItem = subItems.item(i);
                        Subscription subscription;
                        String tag = subItem.getAttributes().getNamedItem(DeliciousConstants.TAG_ATTRIBUTE).getNodeValue();
                        String user = subItem.getAttributes().getNamedItem(DeliciousConstants.USER_ATTRIBUTE).getNodeValue();

                        subscription = new Subscription(tag, user);

                        subscriptions.add(subscription);
                    }
                }
            }
        } catch (IOException e) {
            logger.error(e);
        } catch (SAXException e) {
            logger.error(e);
            throw new DeliciousException("Response parse error", e);
        }

        return subscriptions;
    }