Package org.simpleframework.http
Interface Request
- All Superinterfaces:
RequestHeader
,RequestLine
- All Known Implementing Classes:
RequestEntity
,RequestWrapper
The
Request
is used to provide an interface to the
HTTP entity body and message header. This provides methods that
allow the entity body to be acquired as a stream, string, or if
the message is a multipart encoded body, then the individual
parts of the request body can be acquired.
This can also maintain data during the request lifecycle as well
as the session lifecycle. A Session
is made available
for convenience. It provides a means for the services to associate
data with a given client session, which can be retrieved when
there are subsequent requests sent to the server.
It is important to note that the entity body can be read multiple
times from the request. Calling getInputStream
will
start reading from the first byte in the body regardless of the
number of times it is called. This allows POST parameters as well
as multipart bodies to be read from the stream if desired.
-
Method Summary
Modifier and TypeMethodDescriptiongetAttribute
(Object key) This is used as a shortcut for acquiring attributes for the response.This can be used to retrieve the response attributes.This is used to read the content body.This provides the underlying channel for the request.This is used to acquire the remote client address.This is used to acquire the SSL certificate used when the server is using a HTTPS connection.This is used to get the content body.This is used to read the content body.getParameter
(String name) This is used to provide quick access to the parameters.This method is used to acquire aPart
from the HTTP request using a known name for the part.getParts()
This method is used to get allPart
objects that are associated with the request.long
This is the time in milliseconds when the request was first read from the underlying socket.boolean
This is a convenience method that is used to determine whether or not this message has theConnection: close
header.boolean
isSecure()
This is used to determine if the request has been transferred over a secure connection.Methods inherited from interface org.simpleframework.http.RequestHeader
getContentLength, getContentType, getCookie, getCookies, getDate, getHeader, getInteger, getLocales, getNames, getValue, getValue, getValues, toString
Methods inherited from interface org.simpleframework.http.RequestLine
getAddress, getMajor, getMethod, getMinor, getPath, getQuery, getTarget
-
Method Details
-
isSecure
boolean isSecure()This is used to determine if the request has been transferred over a secure connection. If the protocol is HTTPS and the content is delivered over SSL then the request is considered to be secure. Also the associated response will be secure.- Returns:
- true if the request is transferred securely
-
isKeepAlive
boolean isKeepAlive()This is a convenience method that is used to determine whether or not this message has theConnection: close
header. If the close token is present then this stream is not a keep-alive connection. If this has noConnection
header then the keep-alive status is determined by the HTTP version, that is, HTTP/1.1 is keep-alive by default, HTTP/1.0 is not keep-alive by default.- Returns:
- returns true if this has a keep-alive stream
-
getRequestTime
long getRequestTime()This is the time in milliseconds when the request was first read from the underlying socket. The time represented here represents the time collection of this request began. This does not necessarily represent the time the bytes arrived as as some data may have been buffered before it was parsed.- Returns:
- this represents the time the request arrived at
-
getChannel
Channel getChannel()This provides the underlying channel for the request. It contains the TCP socket channel and various other low level components. Typically this will only ever be needed when there is a need to switch protocols.- Returns:
- the underlying channel for this request
-
getClientCertificate
Certificate getClientCertificate()This is used to acquire the SSL certificate used when the server is using a HTTPS connection. For plain text connections or connections that use a security mechanism other than SSL this will be null. This is only available when the connection makes specific use of an SSL engine to secure the connection.- Returns:
- this returns the associated SSL certificate if any
-
getClientAddress
InetSocketAddress getClientAddress()This is used to acquire the remote client address. This can be used to acquire both the port and the I.P address for the client. It allows the connected clients to be logged and if require it can be used to perform course grained security.- Returns:
- this returns the client address for this request
-
getAttributes
Map getAttributes()This can be used to retrieve the response attributes. These can be used to keep state with the response when it is passed to other systems for processing. Attributes act as a convenient model for storing objects associated with the response. This also inherits attributes associated with the client connection.- Returns:
- the attributes of that have been set on the request
-
getAttribute
This is used as a shortcut for acquiring attributes for the response. This avoids acquiring the attributeMap
in order to retrieve the attribute directly from that object. The attributes contain data specific to the response.- Parameters:
key
- this is the key of the attribute to acquire- Returns:
- this returns the attribute for the specified name
-
getParameter
This is used to provide quick access to the parameters. This avoids having to acquire the requestForm
object. This basically acquires the parameters object and invokes thegetParameters
method with the given name.- Parameters:
name
- this is the name of the parameter value
-
getPart
This method is used to acquire aPart
from the HTTP request using a known name for the part. This is typically used when there is a file upload with a multipart POST request. All parts that are not files can be acquired as string values from the attachment object.- Parameters:
name
- this is the name of the part object to acquire- Returns:
- the named part or null if the part does not exist
-
getParts
This method is used to get allPart
objects that are associated with the request. Each attachment contains the body and headers associated with it. If the request is not a multipart POST request then this will return an empty list.- Returns:
- the list of parts associated with this request
-
getContent
This is used to get the content body. This will essentially get the content from the body and present it as a single string. The encoding of the string is determined from the content type charset value. If the charset is not supported this will throw an exception. Typically only text values should be extracted using this method if there is a need to parse that content.- Returns:
- this returns the message bytes as an encoded string
- Throws:
IOException
-
getInputStream
This is used to read the content body. The specifics of the data that is read from thisInputStream
can be determined by thegetContentLength
method. If the data sent by the client is chunked then it is decoded, see RFC 2616 section 3.6. Also multipart data is available asPart
objects however the raw content of the multipart body is still available.- Returns:
- this returns an input stream containing the message body
- Throws:
IOException
-
getByteChannel
This is used to read the content body. The specifics of the data that is read from thisReadableByteChannel
can be determined by thegetContentLength
method. If the data sent by the client is chunked then it is decoded, see RFC 2616 section 3.6. This stream will never provide empty reads as the content is internally buffered, so this can do a full read.- Returns:
- this returns the byte channel used to read the content
- Throws:
IOException
-