public HostData getServerData(String urlString, String username, String password) throws PSIParserException, PSIError {

    final URL serverURL;
    try {
      serverURL = getServerUri(urlString);
    }
    catch (MalformedURLException e1) {
      throw new PSIParserException("get_url");
    }

    HttpUtils.installSSLTrust();

    if (username != null && password != null) {
      Authenticator.setDefault(HttpUtils.getBasicAuthenticator(username, password));
    }

    String serverData = null;
    try {
      serverData = Resources.toString(serverURL, Charsets.UTF_8);
      return parseServerData(serverData);
    }
    catch (IOException e) {
      throw new PSIParserException("get_data");
    }
    finally {
      Authenticator.setDefault(null);
    }
  }