private SyndFeed retrieveFeed(final String urlStr, final HttpMethod method) throws IOException, HttpException, FetcherException, FeedException { final Header contentEncodingHeader = method.getResponseHeader("Content-Encoding"); final InputStream stream; if (contentEncodingHeader != null && "gzip".equalsIgnoreCase(contentEncodingHeader.getValue())) { stream = new GZIPInputStream(method.getResponseBodyAsStream()); } else { stream = method.getResponseBodyAsStream(); } try { final Header contentTypeHeader = method.getResponseHeader("Content-Type"); final XmlReader reader; if (contentTypeHeader != null) { reader = new XmlReader(stream, contentTypeHeader.getValue(), true); } else { reader = new XmlReader(stream, true); } final SyndFeedInput syndFeedInput = new SyndFeedInput(); syndFeedInput.setPreserveWireFeed(isPreserveWireFeed()); syndFeedInput.setAllowDoctypes(isAllowDoctypes()); return syndFeedInput.build(reader); } finally { IO.close(stream); } }