gnu.inet.http
Class Request
A single HTTP request.
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.
Request
protected Request(HTTPConnection connection,
String method,
String path)
Constructor for a new request.
connection
- the connection contextmethod
- the HTTP methodpath
- the resource path including query part
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.
- an HTTP response object representing the result of the operation
IOException
- if an I/O error occurred
getDateHeader
public Date getDateHeader(String name)
Returns the value of the specified header in this request as a date.
name
- the header name
getHeader
public String getHeader(String name)
Returns the value of the specified header in this request.
name
- the header name
getIntHeader
public int getIntHeader(String name)
Returns the value of the specified header in this request as an integer.
name
- the header name
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.
authenticator
- the authenticator
setHeader
public void setHeader(String name,
String value)
Sets the specified header in this request.
name
- the header namevalue
- the header value
setRequestBody
public void setRequestBody(byte[] requestBody)
Convenience method to set the entire request body.
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.
threshold
- the body negotiation threshold, or <=0 to disable
request body negotation entirely
setRequestBodyWriter
public void setRequestBodyWriter(RequestBodyWriter requestBodyWriter)
Sets the request body provider.
requestBodyWriter
- the handler used to obtain the request body
setResponseBodyReader
public void setResponseBodyReader(ResponseBodyReader responseBodyReader)
Sets the response body reader.
responseBodyReader
- the handler to receive notifications of
response body content
* Request.java
* Copyright (C) 2004 The Free Software Foundation
*
* This file is part of GNU inetlib, a library.
*
* GNU inetlib 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 of the License, or
* (at your option) any later version.
*
* GNU inetlib 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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
* obliged to do so. If you do not wish to do so, delete this
* exception statement from your version.