protected String getHttpResponse(String url) throws JmdbException {
        String content            = null;
        HTTPConnection connection = null;

        try {
            URL requestURL = new URL(url);
            String host = requestURL.getHost();
            String file = requestURL.getFile();
            int port = requestURL.getPort();
            port = (port == -1) ? 80 : port;

            log.debug("Getting HTTP response for: "+url);
            connection = new HTTPConnection(host, port);
            connection.setTimeout(Integer.parseInt(this.criteria.get("timeout")));
            connection.setDefaultHeaders(new NVPair[] {new NVPair("User-Agent", this.criteria.get("user_agent")),
                                         new NVPair("Referer", this.criteria.get("referer"))});
            connection.setAllowUserInteraction(false);
            connection.removeModule(CookieModule.class);
            HTTPResponse resp = connection.Get(file);
            if (resp.getStatusCode() != 200) {
                throw new JmdbException("Response returned invalid status code: "+resp.getStatusCode());
            }
            content        = resp.getText();
        } catch (MalformedURLException ex) {
            throw new JmdbException("URL supplied for IMDB request is not valid URL", ex);
        } catch (IOException ex) {
            throw new JmdbException("Error while loading HTTP response", ex);
        } catch (ModuleException ex) {
            throw new JmdbException("Error while loading modules in HTTPClient", ex);
        } catch (ParseException ex) {
            throw new JmdbException("Error while parsing HTTP response", ex);
        } catch (JmdbException ex) {
            throw new JmdbException(ex);
        } finally {
            if (connection != null) connection.stop();
        }

        return content;
    }