gnu.inet.http
Class Request

java.lang.Object
  extended by gnu.inet.http.Request

public class Request
extends java.lang.Object

A single HTTP request.

Author:
Chris Burdess

Field Summary
protected  Authenticator authenticator
          The authenticator.
protected  HTTPConnection connection
          The connection context in which this request is invoked.
protected  java.lang.String method
          The HTTP method to invoke.
protected  java.lang.String path
          The path identifying the resource.
protected  int requestBodyNegotiationThreshold
          Request body negotiation threshold for 100-continue expectations.
protected  RequestBodyWriter requestBodyWriter
          The request body provider.
protected  Headers requestHeaders
          The headers in this request.
protected  ResponseBodyReader responseBodyReader
          The response body reader.
protected  java.util.Map responseHeaderHandlers
          Map of response header handlers.
 
Constructor Summary
protected Request(HTTPConnection connection, java.lang.String method, java.lang.String path)
          Constructor for a new request.
 
Method Summary
 Response dispatch()
          Dispatches this request.
 HTTPConnection getConnection()
          Returns the connection associated with this request.
 java.util.Date getDateHeader(java.lang.String name)
          Returns the value of the specified header in this request as a date.
 java.lang.String getHeader(java.lang.String name)
          Returns the value of the specified header in this request.
 Headers getHeaders()
          Returns the headers in this request.
 int getIntHeader(java.lang.String name)
          Returns the value of the specified header in this request as an integer.
 java.lang.String getMethod()
          Returns the HTTP method to invoke.
 java.lang.String getPath()
          Returns the resource path.
 java.lang.String getRequestURI()
          Returns the full request-URI represented by this request, as specified by HTTP/1.1.
 void setAuthenticator(Authenticator authenticator)
          Sets an authenticator that can be used to handle authentication automatically.
 void setHeader(java.lang.String name, java.lang.String value)
          Sets the specified header in this request.
 void setRequestBody(byte[] requestBody)
          Convenience method to set the entire request body.
 void setRequestBodyNegotiationThreshold(int threshold)
          Sets the request body negotiation threshold.
 void setRequestBodyWriter(RequestBodyWriter requestBodyWriter)
          Sets the request body provider.
 void setResponseBodyReader(ResponseBodyReader responseBodyReader)
          Sets the response body reader.
 void setResponseHeaderHandler(java.lang.String name, ResponseHeaderHandler handler)
          Sets a callback handler to be invoked for the specified header name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

connection

protected final HTTPConnection connection
The connection context in which this request is invoked.


method

protected final java.lang.String method
The HTTP method to invoke.


path

protected final java.lang.String path
The path identifying the resource. This string must conform to the abs_path definition given in RFC2396, with an optional "?query" part, and must be URI-escaped by the caller.


requestHeaders

protected final Headers requestHeaders
The headers in this request.


requestBodyWriter

protected RequestBodyWriter requestBodyWriter
The request body provider.


requestBodyNegotiationThreshold

protected int requestBodyNegotiationThreshold
Request body negotiation threshold for 100-continue expectations.


responseBodyReader

protected ResponseBodyReader responseBodyReader
The response body reader.


responseHeaderHandlers

protected java.util.Map responseHeaderHandlers
Map of response header handlers.


authenticator

protected Authenticator authenticator
The authenticator.

Constructor Detail

Request

protected Request(HTTPConnection connection,
                  java.lang.String method,
                  java.lang.String path)
Constructor for a new request.

Parameters:
connection - the connection context
method - the HTTP method
path - the resource path including query part
Method Detail

getConnection

public HTTPConnection getConnection()
Returns the connection associated with this request.

See Also:
connection

getMethod

public java.lang.String getMethod()
Returns the HTTP method to invoke.

See Also:
method

getPath

public java.lang.String getPath()
Returns the resource path.

See Also:
path

getRequestURI

public java.lang.String getRequestURI()
Returns the full request-URI represented by this request, as specified by HTTP/1.1.


getHeaders

public Headers getHeaders()
Returns the headers in this request.


getHeader

public java.lang.String getHeader(java.lang.String name)
Returns the value of the specified header in this request.

Parameters:
name - the header name

getIntHeader

public int getIntHeader(java.lang.String name)
Returns the value of the specified header in this request as an integer.

Parameters:
name - the header name

getDateHeader

public java.util.Date getDateHeader(java.lang.String name)
Returns the value of the specified header in this request as a date.

Parameters:
name - the header name

setHeader

public void setHeader(java.lang.String name,
                      java.lang.String value)
Sets the specified header in this request.

Parameters:
name - the header name
value - the header value

setRequestBody

public void setRequestBody(byte[] requestBody)
Convenience method to set the entire request body.

Parameters:
requestBody - the request body content

setRequestBodyWriter

public void setRequestBodyWriter(RequestBodyWriter requestBodyWriter)
Sets the request body provider.

Parameters:
requestBodyWriter - the handler used to obtain the request body

setResponseBodyReader

public void setResponseBodyReader(ResponseBodyReader responseBodyReader)
Sets the response body reader.

Parameters:
responseBodyReader - the handler to receive notifications of response body content

setResponseHeaderHandler

public void setResponseHeaderHandler(java.lang.String name,
                                     ResponseHeaderHandler handler)
Sets a callback handler to be invoked for the specified header name.

Parameters:
name - the header name
handler - the handler to receive the value for the header

setAuthenticator

public void setAuthenticator(Authenticator authenticator)
Sets an authenticator that can be used to handle authentication automatically.

Parameters:
authenticator - the authenticator

setRequestBodyNegotiationThreshold

public void setRequestBodyNegotiationThreshold(int threshold)
Sets the request body negotiation threshold. If this is set, it determines the maximum size that the request body may be before body negotiation occurs(via the 100-continue expectation). This ensures that a large request body is not sent when the server wouldn't have accepted it anyway.

Parameters:
threshold - the body negotiation threshold, or <=0 to disable request body negotation entirely

dispatch

public Response dispatch()
                  throws java.io.IOException
Dispatches this request. A request can only be dispatched once; calling this method a second time results in a protocol exception.

Returns:
an HTTP response object representing the result of the operation
Throws:
java.io.IOException - if an I/O error occurred


© Copyright 2003 The Free Software Foundation, all rights reserved