gnu.java.net.protocol.http

Class Request


public class Request
extends Object

A single HTTP request.

Field Summary

protected Map
ResponseHeaderHandler>responseHeaderHandlers
Map of response header handlers.
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 RequestBodyWriter
requestBodyWriter
The request body provider.
protected gnu.java.net.protocol.http.Headers
requestHeaders
The headers in this request.

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.
gnu.java.net.protocol.http.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
setRequestBodyWriter(RequestBodyWriter requestBodyWriter)
Sets the request body provider.
void
setResponseHeaderHandler(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, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

ResponseHeaderHandler>responseHeaderHandlers

protected MapResponseHeaderHandler>responseHeaderHandlers
Map of response header handlers.

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.

requestBodyWriter

protected RequestBodyWriter requestBodyWriter
The request body provider.

requestHeaders

protected final gnu.java.net.protocol.http.Headers requestHeaders
The headers in this request.

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
Throws:
IOException - if an I/O error occurred

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 gnu.java.net.protocol.http.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.
See Also:
method

getPath

public String getPath()
Returns the resource path.
See Also:
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

setRequestBodyWriter

public void setRequestBodyWriter(RequestBodyWriter requestBodyWriter)
Sets the request body provider.
Parameters:
requestBodyWriter - the handler used to obtain the request body

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

Request.java -- Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.