Index (Frames) | Index (No Frames) | Package | Package Tree | Tree
java.net

Class HttpURLConnection

java.lang.Object
|
+--java.net.URLConnection
   |
   +--java.net.HttpURLConnection


public abstract class HttpURLConnection

extends URLConnection

This class provides a common abstract implementation for those URL connection classes that will connect using the HTTP protocol. In addition to the functionality provided by the URLConnection class, it defines constants for HTTP return code values and methods for setting the HTTP request method and determining whether or not to follow redirects.

Since:Authors:

Field Summary

static intHTTP_ACCEPTED

The request has been accepted for processing but has not completed.
static intHTTP_BAD_GATEWAY

The proxy encountered a bad response from the server it was proxy-ing for
static intHTTP_BAD_METHOD

The specified request method is not allowed for this resource.
static intHTTP_BAD_REQUEST

The request was misformed or could not be understood.
static intHTTP_CLIENT_TIMEOUT

The request timed out.
static intHTTP_CONFLICT

There is a conflict between the current state of the resource and the requested action.
static intHTTP_CREATED

The requested resource has been created.
static intHTTP_ENTITY_TOO_LARGE

The request sent was too large for the server to handle.
static intHTTP_FORBIDDEN

There is no permission to access the requested resource.
static intHTTP_GATEWAY_TIMEOUT

The proxy timed out getting a reply from the remote server it was proxy-ing for.
static intHTTP_GONE

The requested resource is no longer available.
static intHTTP_INTERNAL_ERROR

The server encountered an unexpected error (such as a CGI script crash) that prevents the request from being fulfilled.
static intHTTP_LENGTH_REQUIRED

A Content-Length header is required for this request, but was not supplied.
static intHTTP_MOVED_PERM

The resource has been permanently moved to a new location.
static intHTTP_MOVED_TEMP

The resource requested has been temporarily moved to a new location.
static intHTTP_MULT_CHOICE

There is a list of choices available for the requested resource.
static intHTTP_NOT_ACCEPTABLE

Based on the input headers sent, the resource returned in response to the request would not be acceptable to the client.
static intHTTP_NOT_AUTHORITATIVE

The meta-information returned in the header is not the actual data from the original server, but may be from a local or other copy.
static intHTTP_NOT_FOUND

The requested resource was not found.
static intHTTP_NOT_IMPLEMENTED

The server does not support the requested functionality.
static intHTTP_NOT_MODIFIED

The document has not been modified since the criteria specified in a conditional GET.
static intHTTP_NO_CONTENT

The server performed the request, but there is no data to send back.
static intHTTP_OK

Indicates the request succeeded.
static intHTTP_PARTIAL

The server completed the partial GET request for the resource.
static intHTTP_PAYMENT_REQUIRED

Code reserved for future use - I hope way in the future.
static intHTTP_PRECON_FAILED

A client specified pre-condition was not met on the server.
static intHTTP_PROXY_AUTH

The client must authenticate with a proxy prior to attempting this request.
static intHTTP_REQ_TOO_LONG

The name of the resource specified was too long.
static intHTTP_RESET

The server performed the request, but there is no data to sent back, however, the user's display should be "reset" to clear out any form fields entered.
static intHTTP_SEE_OTHER

The response to the request issued is available at another location.
static intHTTP_SERVER_ERROR

This error code indicates that some sort of server error occurred.
static intHTTP_UNAUTHORIZED

The request made requires user authorization.
static intHTTP_UNAVAILABLE

The HTTP service is not availalble, such as because it is overloaded and does not want additional requests.
static intHTTP_UNSUPPORTED_TYPE

The request is in a format not supported by the requested resource.
static intHTTP_USE_PROXY

The requested resource needs to be accessed through a proxy.
static intHTTP_VERSION

This server does not support the protocol version requested.
booleaninstanceFollowRedirects

If this instance should follow redirect requests.
java.lang.Stringmethod

The requested method in use for this connection.
intresponseCode

The response code received from the server
java.lang.StringresponseMessage

The response message string received from the server.

Constructor Summary

HttpURLConnection(java.net.URL url)

Create an HttpURLConnection for the specified URL

Method Summary

voiddisconnect()

Closes the connection to the server.
java.io.InputStreamgetErrorStream()

This method allows the caller to retrieve any data that might have been sent despite the fact that an error occurred.
static booleangetFollowRedirects()

Returns a boolean indicating whether or not HTTP redirects will automatically be followed or not.
longgetHeaderFieldDate(java.lang.String key, long value)

Returns the value of the named field parsed as date
booleangetInstanceFollowRedirects()

Returns the value of this HttpURLConnection's instanceFollowRedirects field
java.security.PermissiongetPermission()

Returns a permission object representing the permission necessary to make the connection represented by this object
java.lang.StringgetRequestMethod()

The request method currently in use for this connection.
intgetResponseCode()

Gets the status code from an HTTP response message, or -1 if the response code could not be determined.
java.lang.StringgetResponseMessage()

Gets the HTTP response message, if any, returned along with the response code from a server.
static voidsetFollowRedirects(boolean set)

Sets whether HTTP redirects (requests with response code 3xx) should be automatically followed by this class.
voidsetInstanceFollowRedirects(boolean follow)

Sets the value of this HttpURLConnection's instanceFollowRedirects field
voidsetRequestMethod(java.lang.String method)

Set the method for the URL request, one of: GET POST HEAD OPTIONS PUT DELETE TRACE are legal
booleanusingProxy()

Returns a boolean indicating whether or not this connection is going through a proxy

Field Details

HTTP_ACCEPTED

public static final int HTTP_ACCEPTED

The request has been accepted for processing but has not completed. There is no guarantee that the requested action will actually ever be completed succesfully, but everything is ok so far.


HTTP_BAD_GATEWAY

public static final int HTTP_BAD_GATEWAY

The proxy encountered a bad response from the server it was proxy-ing for


HTTP_BAD_METHOD

public static final int HTTP_BAD_METHOD

The specified request method is not allowed for this resource.


HTTP_BAD_REQUEST

public static final int HTTP_BAD_REQUEST

The request was misformed or could not be understood.


HTTP_CLIENT_TIMEOUT

public static final int HTTP_CLIENT_TIMEOUT

The request timed out.


HTTP_CONFLICT

public static final int HTTP_CONFLICT

There is a conflict between the current state of the resource and the requested action.


HTTP_CREATED

public static final int HTTP_CREATED

The requested resource has been created.


HTTP_ENTITY_TOO_LARGE

public static final int HTTP_ENTITY_TOO_LARGE

The request sent was too large for the server to handle.


HTTP_FORBIDDEN

public static final int HTTP_FORBIDDEN

There is no permission to access the requested resource.


HTTP_GATEWAY_TIMEOUT

public static final int HTTP_GATEWAY_TIMEOUT

The proxy timed out getting a reply from the remote server it was proxy-ing for.


HTTP_GONE

public static final int HTTP_GONE

The requested resource is no longer available. This ususally indicates a permanent condition.


HTTP_INTERNAL_ERROR

public static final int HTTP_INTERNAL_ERROR

The server encountered an unexpected error (such as a CGI script crash) that prevents the request from being fulfilled.


HTTP_LENGTH_REQUIRED

public static final int HTTP_LENGTH_REQUIRED

A Content-Length header is required for this request, but was not supplied.


HTTP_MOVED_PERM

public static final int HTTP_MOVED_PERM

The resource has been permanently moved to a new location.


HTTP_MOVED_TEMP

public static final int HTTP_MOVED_TEMP

The resource requested has been temporarily moved to a new location.


HTTP_MULT_CHOICE

public static final int HTTP_MULT_CHOICE

There is a list of choices available for the requested resource.


HTTP_NOT_ACCEPTABLE

public static final int HTTP_NOT_ACCEPTABLE

Based on the input headers sent, the resource returned in response to the request would not be acceptable to the client.


HTTP_NOT_AUTHORITATIVE

public static final int HTTP_NOT_AUTHORITATIVE

The meta-information returned in the header is not the actual data from the original server, but may be from a local or other copy. Normally this still indicates a successful completion.


HTTP_NOT_FOUND

public static final int HTTP_NOT_FOUND

The requested resource was not found.


HTTP_NOT_IMPLEMENTED

public static final int HTTP_NOT_IMPLEMENTED

The server does not support the requested functionality.

Since:

HTTP_NOT_MODIFIED

public static final int HTTP_NOT_MODIFIED

The document has not been modified since the criteria specified in a conditional GET.


HTTP_NO_CONTENT

public static final int HTTP_NO_CONTENT

The server performed the request, but there is no data to send back. This indicates that the user's display should not be changed.


HTTP_OK

public static final int HTTP_OK

Indicates the request succeeded.


HTTP_PARTIAL

public static final int HTTP_PARTIAL

The server completed the partial GET request for the resource.


HTTP_PAYMENT_REQUIRED

public static final int HTTP_PAYMENT_REQUIRED

Code reserved for future use - I hope way in the future.


HTTP_PRECON_FAILED

public static final int HTTP_PRECON_FAILED

A client specified pre-condition was not met on the server.


HTTP_PROXY_AUTH

public static final int HTTP_PROXY_AUTH

The client must authenticate with a proxy prior to attempting this request.


HTTP_REQ_TOO_LONG

public static final int HTTP_REQ_TOO_LONG

The name of the resource specified was too long.


HTTP_RESET

public static final int HTTP_RESET

The server performed the request, but there is no data to sent back, however, the user's display should be "reset" to clear out any form fields entered.


HTTP_SEE_OTHER

public static final int HTTP_SEE_OTHER

The response to the request issued is available at another location.


HTTP_SERVER_ERROR

public static final int HTTP_SERVER_ERROR

This error code indicates that some sort of server error occurred.


HTTP_UNAUTHORIZED

public static final int HTTP_UNAUTHORIZED

The request made requires user authorization. Try again with a correct authentication header.


HTTP_UNAVAILABLE

public static final int HTTP_UNAVAILABLE

The HTTP service is not availalble, such as because it is overloaded and does not want additional requests.


HTTP_UNSUPPORTED_TYPE

public static final int HTTP_UNSUPPORTED_TYPE

The request is in a format not supported by the requested resource.


HTTP_USE_PROXY

public static final int HTTP_USE_PROXY

The requested resource needs to be accessed through a proxy.


HTTP_VERSION

public static final int HTTP_VERSION

This server does not support the protocol version requested.


instanceFollowRedirects

protected boolean instanceFollowRedirects

If this instance should follow redirect requests.


method

protected String method

The requested method in use for this connection. Default is GET.


responseCode

protected int responseCode

The response code received from the server


responseMessage

protected String responseMessage

The response message string received from the server.


Constructor Details

HttpURLConnection

protected HttpURLConnection(java.net.URL url)

Create an HttpURLConnection for the specified URL

Parameters:


Method Details

disconnect

public void disconnect()

Closes the connection to the server.


getErrorStream

public InputStream getErrorStream()

This method allows the caller to retrieve any data that might have been sent despite the fact that an error occurred. For example, the HTML page sent along with a 404 File Not Found error. If the socket is not connected, or if no error occurred or no data was returned, this method returns null.

Returns:


getFollowRedirects

public static boolean getFollowRedirects()

Returns a boolean indicating whether or not HTTP redirects will automatically be followed or not.

Returns:


getHeaderFieldDate

public long getHeaderFieldDate(java.lang.String key, long value)

Returns the value of the named field parsed as date

Parameters:


getInstanceFollowRedirects

public boolean getInstanceFollowRedirects()

Returns the value of this HttpURLConnection's instanceFollowRedirects field


getPermission

public Permission getPermission()

Returns a permission object representing the permission necessary to make the connection represented by this object

Throws:


getRequestMethod

public String getRequestMethod()

The request method currently in use for this connection.

Returns:


getResponseCode

public int getResponseCode()

Gets the status code from an HTTP response message, or -1 if the response code could not be determined. Note that all valid response codes have class variables defined for them in this class.

Returns:

Throws:


getResponseMessage

public String getResponseMessage()

Gets the HTTP response message, if any, returned along with the response code from a server. Null if no response message was set or an error occured while connecting.

Returns:

Throws:


setFollowRedirects

public static void setFollowRedirects(boolean set)

Sets whether HTTP redirects (requests with response code 3xx) should be automatically followed by this class. True by default

Parameters:

Throws:


setInstanceFollowRedirects

public void setInstanceFollowRedirects(boolean follow)

Sets the value of this HttpURLConnection's instanceFollowRedirects field

Parameters:


setRequestMethod

public void setRequestMethod(java.lang.String method)

Set the method for the URL request, one of: GET POST HEAD OPTIONS PUT DELETE TRACE are legal

Parameters:

Throws:


usingProxy

public boolean usingProxy()

Returns a boolean indicating whether or not this connection is going through a proxy

Returns: