|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuk.ac.starlink.util.ContentCoding
public abstract class ContentCoding
Defines a policy for Content Codings used in HTTP connections. An instance of this class is used to prepare requests and decode responses for some HTTP-based communications in this package. It controls whether HTTP-level content codings are used; typically this means transparent gzip compression of the HTTP response stream where negotiation indicates it is allowed.
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.
Field Summary | |
---|---|
static java.lang.String |
ACCEPT_ENCODING
Name of HTTP request header to request coded response ("Accept-Encoding"). |
static java.lang.String |
CONTENT_ENCODING
Name of HTTP response header to mark coded response ("Content-Encoding"). |
static ContentCoding |
GZIP
Gzip encoding is requested. |
static ContentCoding |
NONE
No encoding is requested. |
Constructor Summary | |
---|---|
protected |
ContentCoding()
Constructor. |
Method Summary | |
---|---|
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 prepareRequest
method. |
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 prepareRequest
method. |
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. |
abstract void |
prepareRequest(java.net.URLConnection conn)
Sets up request headers for the given connection. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
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
Constructor Detail |
---|
protected ContentCoding()
Method Detail |
---|
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
- connection
java.io.IOException
URLConnection.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
- connection
java.io.IOException
URLConnection.getInputStream()
public java.net.URLConnection openConnection(java.net.URL url) throws java.io.IOException
prepareRequest
.
url
- target URL
java.io.IOException
public java.io.InputStream openStream(java.net.URL url) throws java.io.IOException
url
- target URL
java.io.IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |