public abstract class ContentCoding extends java.lang.Object implements UrlConnector
Two static instances NONE and GZIP are provided.
 It should be completely safe to use either of these in any context,
 since an instance of this class represents only an indication to an
 HTTP server that a particular coding scheme is supported by the client.
 A service is therefore always at liberty to ignore this hint/request
 and provide and unencoded response if, for instance, it does not support
 the requested compression scheme.  Good practice for use of this class
 is therefore probably to use GZIP where the response is expected
 to be large and reasonably compressible (a long VOTable is a good
 example), and NONE where the response is expected to be short or,
 especially, not very gzippable (for instance noisy binary floating
 point data, or a byte stream that has already been compressed).
 
The provided instances also include some logging functionality; information about how many bytes (and where applicable the level of compression) is logged for bytestreams read through these instances. The logging level for this information is currently CONFIG.
| Modifier and Type | Field and Description | 
|---|---|
| static java.lang.String | ACCEPT_ENCODINGName of HTTP request header to request coded response ("Accept-Encoding"). | 
| static java.lang.String | CONTENT_ENCODINGName of HTTP response header to mark coded response ("Content-Encoding"). | 
| static ContentCoding | GZIPGzip encoding is requested. | 
| static ContentCoding | NONENo encoding is requested. | 
| Modifier | Constructor and Description | 
|---|---|
| protected  | ContentCoding()Constructor. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | connect(java.net.HttpURLConnection hconn)Opens communication to an HTTP resource. | 
| abstract java.io.InputStream | getErrorStream(java.net.URLConnection conn)Returns the error stream response from the given connection,
 which was prepared using this object's  prepareRequestmethod. | 
| abstract java.io.InputStream | getInputStream(java.net.URLConnection conn)Returns the input stream response from the given connection,
 which was prepared using this object's  prepareRequestmethod. | 
| java.net.URLConnection | openConnection(java.net.URL url)Convenience method to open a new connection prepared in accordance
 with this object's encoding policy. | 
| java.io.InputStream | openStream(java.net.URL url)Convenience method to return a byte stream from a given URL
 in accordance with this object's encoding policy. | 
| java.io.InputStream | openStreamAuth(java.net.URL url,
              AuthManager authManager)Convenience method to return a byte stream from a given URL
 in accordance with this object's encoding policy and with
 authentication and redirects handled by a given AuthManager
 (typically  AuthManager.getInstance()). | 
| abstract void | prepareRequest(java.net.URLConnection conn)Sets up request headers for the given connection. | 
public static final ContentCoding NONE
public static final ContentCoding GZIP
public static final java.lang.String ACCEPT_ENCODING
public static final java.lang.String CONTENT_ENCODING
public abstract void prepareRequest(java.net.URLConnection conn)
conn - unconnected connectionpublic abstract java.io.InputStream getInputStream(java.net.URLConnection conn)
                                            throws java.io.IOException
prepareRequest
 method.  Any required decoding will have been done transparently.conn - connectionjava.io.IOExceptionURLConnection.getInputStream()public abstract java.io.InputStream getErrorStream(java.net.URLConnection conn)
                                            throws java.io.IOException
prepareRequest
 method.  Any required decoding will have been done transparently.conn - connectionjava.io.IOExceptionURLConnection.getInputStream()public java.net.URLConnection openConnection(java.net.URL url)
                                      throws java.io.IOException
prepareRequest.url - target URLjava.io.IOExceptionpublic java.io.InputStream openStream(java.net.URL url)
                               throws java.io.IOException
url - target URLjava.io.IOExceptionpublic java.io.InputStream openStreamAuth(java.net.URL url,
                                          AuthManager authManager)
                                   throws java.io.IOException
AuthManager.getInstance()).url - target URLauthManager - authentication managerjava.io.IOExceptionpublic void connect(java.net.HttpURLConnection hconn)
             throws java.io.IOException
UrlConnectorURLConnection.connect(),
 but it may optionally perform other actions as well,
 such as configuring the request headers as required
 and writing to the connection's output stream,
 before returning.
 If this object is being used with AuthManager,
 it will typically be a good idea to call
 setInstanceFollowRedirects(false),
 since redirection can be handled by AuthManager.
connect in interface UrlConnectorhconn - URL connection; on entry connect() has not yet
                been called, but on exit it hasjava.io.IOException