| sunlabs.brazil.util.StringMap sunlabs.brazil.util.http.MimeHeaders
MimeHeaders | public class MimeHeaders extends StringMap (Code) | | This class is build on top of the StringMap class and
provides added methods that are of help when manipulating MIME headers.
By creating an instance of this class, the user can conveniently read,
write, and modify MIME headers.
author: Colin Stevens (colin.stevens@sun.com) version: 1.12 99/11/16 |
Constructor Summary | |
public | MimeHeaders() Creates a new, empty MimeHeaders object. | public | MimeHeaders(HttpInputStream in) Creates a new MimeHeaders object and then initializes
it by reading MIME headers from the specified input stream. |
Method Summary | |
public void | add(String key, int value) Adds a mapping for the given case-insensitive key to the specified
value in this MimeHeaders object. | public void | copyTo(MimeHeaders other) Copies the contents of this MimeHeaders object,
MimeHeaders.add adding all the other's keys and values to the other. | public void | print(OutputStream out) Writes this MimeHeaders object to the given output
stream. | public void | print(PrintStream out) Writes this MimeHeaders object to the given output
stream. | public void | put(String key, int value) Maps the given case-insensitive key to the specified value in this
MimeHeaders object, replacing the old value.
This is convenience method that automatically converts the
integer value to a string before calling the underlying
put method.
Parameters: key - The new key. | public void | putIfNotPresent(String key, String value) Maps the given case-insensitive key to the specified value if the
key does not already exist in this MimeHeaders object.
Often, when dealing with MIME headers, the user will want to set
a header only if that header is not already set. | public void | read(HttpInputStream in) Reads MIME headers from the specified input stream. |
MimeHeaders | public MimeHeaders()(Code) | | Creates a new, empty MimeHeaders object.
|
MimeHeaders | public MimeHeaders(HttpInputStream in) throws IOException(Code) | | Creates a new MimeHeaders object and then initializes
it by reading MIME headers from the specified input stream.
Parameters: in - The input stream to read. |
add | public void add(String key, int value)(Code) | | Adds a mapping for the given case-insensitive key to the specified
value in this MimeHeaders object. It leaves any existing
key-value mapping alone.
This is convenience method that automatically converts the
integer value to a string before calling the underlying
add method.
Parameters: key - The new key. May not be null . Parameters: value - The new value. |
copyTo | public void copyTo(MimeHeaders other)(Code) | | Copies the contents of this MimeHeaders object,
MimeHeaders.add adding all the other's keys and values to the other.
Parameters: other - The MimeHeaders object to copy to. |
print | public void print(OutputStream out)(Code) | | Writes this MimeHeaders object to the given output
stream. This method does not write a blank line after
the headers are written.
Parameters: out - The output stream. |
print | public void print(PrintStream out)(Code) | | Writes this MimeHeaders object to the given output
stream. This method does not write a blank line after
the headers are written.
Parameters: out - The output stream. |
put | public void put(String key, int value)(Code) | | Maps the given case-insensitive key to the specified value in this
MimeHeaders object, replacing the old value.
This is convenience method that automatically converts the
integer value to a string before calling the underlying
put method.
Parameters: key - The new key. May not be null . Parameters: value - The new value. |
putIfNotPresent | public void putIfNotPresent(String key, String value)(Code) | | Maps the given case-insensitive key to the specified value if the
key does not already exist in this MimeHeaders object.
Often, when dealing with MIME headers, the user will want to set
a header only if that header is not already set.
Parameters: key - The new key. May not be null . Parameters: value - The new value. May be null . |
read | public void read(HttpInputStream in) throws IOException(Code) | | Reads MIME headers from the specified input stream. This method
reads up to and consumes the blank line that marks the end of the
MIME headers. It also stops reading if it reaches the end of
the input stream.
The MIME headers read from the input stream are stored in this
MimeHeaders object. All headers read are added
to the existing headers; the new headers do not replace the
existing ones. The order of the headers in this object will
reflect the order of the headers from the input stream, but
space characters surrounding the keys and values are not preserved.
In a set of MIME headers, the given key may appear multiple times
(that is, on multiple lines, not necessarily consecutively).
In that case, that key will appear multiple times in this
MimeHeaders object also. The HTTP spec says that
if a given key appears multiple times in a set of MIME headers, the
values can be concatenated together with commas
between them. However, in practice, it appears that some browsers
and HTTP servers get confused when encountering such collapsed
MIME headers, for instance, the Yahoo mail reader program.
MIME headers also support the idea of continuation lines, where
a key (and optionally its value) is followed on subsequent line(s) by
another value without a key. The HTTP spec says that in this case
the values can be concatenated together with space characters
between them. In practice, joining continuation lines together
does not seem to confuse any browsers or HTTP servers. This method
joins continuation lines together by putting the space-equivalent
characters "\r\n\t" between the values so it can be easily parsed
with StringTokenizer and also easily written to
an output stream in a format that actually preserves its formatting
as a continuation line.
Parameters: in - The input stream to read from. throws: IOException - if the input stream throws an IOException while beingread. |
|
|