@Override public ServerResponse httpGET(final String urlStr, final List<HeaderEntry> headers) { try { final URL url = new URL(urlStr); Log.d(TAG, "Downloading from: " + url); final HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.connect(); final ServerResponse response = new ServerResponse(); response.setResponseStatus(connection.getResponseCode()); if (response.getResponseStatus() == 200) { final BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); final StringBuilder sb = new StringBuilder(); if (!this.elemhideEnabled && isListedSubscriptionUrl(url)) { Log.d(TAG, "Removing element hiding rules from: '" + url + "'"); String line; while ((line = reader.readLine()) != null) { // We're only appending non-element-hiding filters here. // // See: // https://issues.adblockplus.org/ticket/303 // // Follow-up issue for removing this hack: // https://issues.adblockplus.org/ticket/1541 // if (line.indexOf('#') == -1) { sb.append(line); sb.append('\n'); } } } else { int character; while ((character = reader.read()) != -1) { sb.append((char) character); } } connection.disconnect(); response.setStatus(NsStatus.OK); response.setResponse(sb.toString()); } else { response.setStatus(NsStatus.ERROR_FAILURE); } return response; } catch (final Throwable t) { throw new AdblockPlusException("WebRequest failed", t); } }