The abstract class
URLConnection
is the superclass
of all classes that represent a communications link between the
application and a URL. Instances of this class can be used both to
read from and to write to the resource referenced by the URL. In
general, creating a connection to a URL is a multistep process:
openConnection() |
connect() |
Manipulate parameters that affect the connection to the remote
resource. |
Interact with the resource; query header fields and
contents. |
---------------------------->
time
- The connection object is created by invoking the
openConnection
method on a URL.
- The setup parameters and general request properties are manipulated.
- The actual connection to the remote object is made, using the
connect
method.
- The remote object becomes available. The header fields and the contents
of the remote object can be accessed.
The setup parameters are modified using the following methods:
setAllowUserInteraction
setDoInput
setDoOutput
setIfModifiedSince
setUseCaches
and the general request properties are modified using the method:
Default values for the AllowUserInteraction
and
UseCaches
parameters can be set using the methods
setDefaultAllowUserInteraction
and
setDefaultUseCaches
.
Each of the above set
methods has a corresponding
get
method to retrieve the value of the parameter or
general request property. The specific parameters and general
request properties that are applicable are protocol specific.
The following methods are used to access the header fields and
the contents after the connection is made to the remote object:
getContent
getHeaderField
getInputStream
getOutputStream
Certain header fields are accessed frequently. The methods:
getContentEncoding
getContentLength
getContentType
getDate
getExpiration
getLastModifed
provide convenient access to these fields. The
getContentType
method is used by the
getContent
method to determine the type of the remote
object; subclasses may find it convenient to override the
getContentType
method.
In the common case, all of the pre-connection parameters and
general request properties can be ignored: the pre-connection
parameters and request properties default to sensible values. For
most clients of this interface, there are only two interesting
methods: getInputStream
and getContent
,
which are mirrored in the URL
class by convenience methods.
More information on the request properties and header fields of
an http
connection can be found at:
http://www.ietf.org/rfc/rfc2068.txt
Note about
fileNameMap
: In versions prior to JDK 1.1.6,
field
fileNameMap
of
URLConnection
was public.
In JDK 1.1.6 and later,
fileNameMap
is private; accessor
and mutator methods
getFileNameMap
and
setFileNameMap
are added
to access it. This change is also described on the
Compatibility page.
Invoking the
close() methods on the
InputStream or
OutputStream of an
URLConnection after a request may free network resources associated with this
instance, unless particular protocol specifications specify different behaviours
for it.