A single HTTP request.
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.
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
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
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.
name
- the header name
getMethod
public String getMethod()
Returns the HTTP method to invoke.
method
getPath
public String getPath()
Returns the resource path.
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.
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
setResponseHeaderHandler
public void setResponseHeaderHandler(String name,
ResponseHeaderHandler handler)
Sets a callback handler to be invoked for the specified header name.
name
- the header namehandler
- the handler to receive the value for the header