/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2004-2011, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.data.ows; import java.io.IOException; import java.io.InputStream; /** * Interface by which an {@link AbstractOpenWebService} retrieves the contents of an HTTP request * issued through its {@link HTTPClient}. * <p> * An HTTPResponse instance shall be {@link #dispose() disposed} as soon as it's * {@link #getResponseStream() response stream} has been consumed or is no longer needed. It's up to * the implementations to just close the actual {@link InputStream} or return the http connection to * the connection pool, or any other resource clean up task that needs to be done. * * @author groldan * @see HTTPClient */ public interface HTTPResponse { /** * Disposes this HTTP response and cleans up any resource being held. * <p> * Multiple invocations of this method shall not raise an exception but return silently. */ public void dispose(); /** * Short cut for {@code getResponseHeader("Content-Type")} */ public String getContentType(); /** * Returns the value of the requested HTTP response header, or {@code null} if not set. */ public String getResponseHeader(String headerName); /** * Returns the HTTP response content byte stream, automatically recognizing gzip encoded * responses and returning an uncompressing stream if that's the case. * * @throws IOException * if such happens when obtaining the response stream. */ public InputStream getResponseStream() throws IOException; }