play.mvc

## Class Http.Request

- java.lang.Object
- - play.mvc.Http.Request

All Implemented Interfaces:
  java.io.Serializable

Enclosing class:
  Http

    public static class Http.Request
    extends java.lang.Object
    implements java.io.Serializable

An HTTP Request

See Also:
  Serialized Form

### Field Summary

Fields
`java.lang.String` `action` Full action (ex: Application.index)
`java.lang.String` `actionMethod` Action method name
`java.util.Map<java.lang.String,java.lang.Object>` `args` Free space to store your request specific data
`java.io.InputStream` `body` Body stream
`java.lang.String` `contentType` Request content-type
`java.lang.String` `controller` Controller to invoke
`java.lang.Class<? extends PlayController>` `controllerClass` The invoked controller class
`PlayController` `controllerInstance` The instance of invoked controller in case it uses non-static action methods.
`java.util.Map<java.lang.String,Http.Cookie>` `cookies` HTTP Cookies
`static java.lang.ThreadLocal<Http.Request>` `current` Bind to thread
`java.util.Date` `date` When the request has been received
`java.lang.String` `domain` Server domain
`java.lang.String` `encoding` This is the encoding used to decode this request.
`java.lang.String` `format` Format (html,xml,json,text)
`java.util.Map<java.lang.String,Http.Header>` `headers` HTTP Headers
`java.lang.String` `host` Server host
`java.lang.reflect.Method` `invokedMethod` The really invoker Java method
`boolean` `isLoopback` Request comes from loopback interface
`boolean` `isNew` New request or already submitted
`java.lang.String` `method` HTTP method
`Scope.Params` `params` Params
`java.lang.String` `password` HTTP Basic Password
`java.lang.String` `path` Request path
`java.lang.Integer` `port` HTTP port
`java.lang.String` `querystring` QueryString
`java.lang.String` `remoteAddress` Client address
`java.util.Map<java.lang.String,java.lang.String>` `routeArgs` Additional HTTP params extracted from route
`java.lang.Boolean` `secure` is HTTPS ?
`java.lang.String` `url` URL path (excluding scheme, host and port), starting with '/' Example: With this full URL `http://localhost:9000/path0/path1` => url will be `/path0/path1`
`java.lang.String` `user` HTTP Basic User

### Constructor Summary

Constructors
Constructor and Description
`Request()` Deprecated.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`void` `_init()` Deprecated.
`java.util.List<java.lang.String>` `acceptLanguage()` Return the languages requested by the browser, ordered by preference (preferred first).
`protected void` `authorizationInit()`

`static Http.Request`

`createRequest(java.lang.String _remoteAddress, java.lang.String _method, java.lang.String _path, java.lang.String _querystring, java.lang.String _contentType, java.io.InputStream _body, java.lang.String _url, java.lang.String _host, boolean _isLoopback, int _port, java.lang.String _domain, boolean _secure, java.util.Map<java.lang.String,Http.Header> _headers, java.util.Map<java.lang.String,Http.Cookie> _cookies)`
All creation / initiating of new requests should use this method.

`static Http.Request` `current()` Retrieve the current request
`Http.Request` `get()` Useful because we sometime use a lazy request loader
`java.lang.String` `getBase()` Get the request base (ex: http://localhost:9000
`boolean` `isAjax()` This request was sent by an Ajax framework.
`boolean` `isModified(java.lang.String etag, long last)`
`protected void` `parseXForwarded()`
`void` `resolveFormat()` Automatically resolve request format from the Accept header (in this order : html > xml > json > text)
`java.lang.String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### host

    public java.lang.String host

Server host

#### path

    public java.lang.String path

Request path

#### querystring

    public java.lang.String querystring

QueryString

#### url

    public java.lang.String url

URL path (excluding scheme, host and port), starting with '/'
Example:
With this full URL `http://localhost:9000/path0/path1`
=> url will be `/path0/path1`

#### method

    public java.lang.String method

HTTP method

#### domain

    public java.lang.String domain

Server domain

#### remoteAddress

    public java.lang.String remoteAddress

Client address

#### contentType

    public java.lang.String contentType

Request content-type

#### encoding

    public java.lang.String encoding

This is the encoding used to decode this request. If encoding-info is not found in request, then Play.defaultWebEncoding is used

#### controller

    public java.lang.String controller

Controller to invoke

#### actionMethod

    public java.lang.String actionMethod

Action method name

#### port

    public java.lang.Integer port

HTTP port

#### secure

    public java.lang.Boolean secure

is HTTPS ?

#### headers

    public java.util.Map<java.lang.String,Http.Header> headers

HTTP Headers

#### cookies

    public java.util.Map<java.lang.String,Http.Cookie> cookies

HTTP Cookies

#### body

    public transient java.io.InputStream body

Body stream

#### routeArgs

    public java.util.Map<java.lang.String,java.lang.String> routeArgs

Additional HTTP params extracted from route

#### format

    public java.lang.String format

Format (html,xml,json,text)

#### action

    public java.lang.String action

Full action (ex: Application.index)

#### current

    public static final java.lang.ThreadLocal<Http.Request> current

Bind to thread

#### invokedMethod

    public transient java.lang.reflect.Method invokedMethod

The really invoker Java method

#### controllerClass

    public transient java.lang.Class<? extends PlayController> controllerClass

The invoked controller class

#### controllerInstance

    public transient PlayController controllerInstance

The instance of invoked controller in case it uses non-static action methods.

#### args

    public java.util.Map<java.lang.String,java.lang.Object> args

Free space to store your request specific data

#### date

    public java.util.Date date

When the request has been received

#### isNew

    public boolean isNew

New request or already submitted

#### user

    public java.lang.String user

HTTP Basic User

#### password

    public java.lang.String password

HTTP Basic Password

#### isLoopback

    public boolean isLoopback

Request comes from loopback interface

#### params

    public final Scope.Params params

Params

### Constructor Detail

#### Request

    @Deprecated
    public Request()

Deprecated.
Deprecate the default constructor to encourage the use of createRequest() when creating new requests. Cannot hide it with protected because we have to be backward compatible with modules - ie PlayGrizzlyAdapter.java

### Method Detail

#### createRequest

    public static Http.Request createRequest(java.lang.String _remoteAddress,
                                             java.lang.String _method,
                                             java.lang.String _path,
                                             java.lang.String _querystring,
                                             java.lang.String _contentType,
                                             java.io.InputStream _body,
                                             java.lang.String _url,
                                             java.lang.String _host,
                                             boolean _isLoopback,
                                             int _port,
                                             java.lang.String _domain,
                                             boolean _secure,
                                             java.util.Map<java.lang.String,Http.Header> _headers,
                                             java.util.Map<java.lang.String,Http.Cookie> _cookies)

All creation / initiating of new requests should use this method. The purpose of this is to "show" what is needed when creating new Requests.

Parameters:
  `_remoteAddress` - The remote IP address
  `_method` - the Method
  `_path` - path
  `_querystring` - The query String
  `_contentType` - The content Type
  `_body` - The request body
  `_url` - The request URL
  `_host` - The request host
  `_isLoopback` - Indicate if the request comes from loopback interface
  `_port` - The request port
  `_domain` - The request domain
  `_secure` - Indicate is request is secure or not
  `_headers` - The request headers
  `_cookies` - The request cookies
Returns:
  the newly created Request object

#### parseXForwarded

    protected void parseXForwarded()

#### _init

    @Deprecated
    public void _init()

Deprecated.
Deprecated to encourage users to use createRequest() instead.

#### authorizationInit

    protected void authorizationInit()

#### resolveFormat

    public void resolveFormat()

Automatically resolve request format from the Accept header (in this order : html > xml > json > text)

#### current

    public static Http.Request current()

Retrieve the current request

Returns:
  the current request

#### get

    public Http.Request get()

Useful because we sometime use a lazy request loader

Returns:
  itself

#### isAjax

    public boolean isAjax()

This request was sent by an Ajax framework. (rely on the X-Requested-With header).

Returns:
  True is the request is an Ajax, false otherwise

#### getBase

    public java.lang.String getBase()

Get the request base (ex: http://localhost:9000

Returns:
  the request base of the url (protocol, host and port)

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`

#### acceptLanguage

    public java.util.List<java.lang.String> acceptLanguage()

Return the languages requested by the browser, ordered by preference (preferred first). If no Accept-Language header is present, an empty list is returned.

Returns:
  Language codes in order of preference, e.g. "en-us,en-gb,en,de".

#### isModified

    public boolean isModified(java.lang.String etag,
                              long last)