gnu.inet.http

Class 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 String
method
The HTTP method to invoke.
protected 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 Map
responseHeaderHandlers
Map of response header handlers.

Constructor Summary

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

Method Summary

Response
dispatch()
Dispatches this request.
HTTPConnection
getConnection()
Returns the connection associated with this request.
Date
getDateHeader(String name)
Returns the value of the specified header in this request as a date.
String
getHeader(String name)
Returns the value of the specified header in this request.
Headers
getHeaders()
Returns the headers in this request.
int
getIntHeader(String name)
Returns the value of the specified header in this request as an integer.
String
getMethod()
Returns the HTTP method to invoke.
String
getPath()
Returns the resource path.
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(String name, 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(String name, ResponseHeaderHandler handler)
Sets a callback handler to be invoked for the specified header name.

Field Details

authenticator

protected Authenticator authenticator
The authenticator.

connection

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

method

protected final String method
The HTTP method to invoke.

path

protected final 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.

requestBodyNegotiationThreshold

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

requestBodyWriter

protected RequestBodyWriter requestBodyWriter
The request body provider.

requestHeaders

protected final Headers requestHeaders
The headers in this request.

responseBodyReader

protected ResponseBodyReader responseBodyReader
The response body reader.

responseHeaderHandlers

protected Map responseHeaderHandlers
Map of response header handlers.

Constructor Details

Request

protected Request(HTTPConnection connection,
                  String method,
                  String path)
Constructor for a new request.
Parameters:
connection - the connection context
method - the HTTP method
path - the resource path including query part

Method Details

dispatch

public Response dispatch()
            throws 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

getConnection

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

getDateHeader

public Date getDateHeader(String name)
Returns the value of the specified header in this request as a date.
Parameters:
name - the header name

getHeader

public String getHeader(String name)
Returns the value of the specified header in this request.
Parameters:
name - the header name

getHeaders

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

getIntHeader

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

getMethod

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

getPath

public String getPath()
Returns the resource path.

getRequestURI

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

setAuthenticator

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

setHeader

public void setHeader(String name,
                      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

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

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(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

© Copyright 2003 The Free Software Foundation, all rights reserved