Guessing MIME Types
If this
were the best of all possible worlds, every protocol and every server
would use the MIME typing method to specify what kind of file it was
transferring. Unfortunately, that’s not the case. Not only do
we have to deal with older protocols, such as FTP, that predate MIME,
but also many HTTP servers that should use MIME either don’t
provide MIME headers at all, or they lie and provide headers that are
incorrect (usually because the server has been misconfigured). The
URLConnection
class provides two static methods to
help programs figure out the MIME type of some data; you can use
these if the content type just isn’t available, or if you have
reason to believe that the content type you’re given
isn’t correct. The first of these is
URLConnection.guessContentTypeFromName( )
:
protected static String guessContentTypeFromName(String name)
This method tries to guess the content type of an object based upon
the extension in the filename portion of the object’s URL. It
returns its best guess about the content type as a
String
. This guess is likely to be correct; people
follow some fairly regular conventions when thinking up filenames.
It’s unfortunate that guessContentTypeFromName( )
is protected. It’s useful for any class that needs
to deal with MIME types (for example, mail clients and HTTP servers),
not just for URLConnection
.
The guesses are determined by the
content-types.properties
file, probably found in
your jre/lib
directory. On Unix, Java may also look ...
Get Java Network Programming, Second Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.