org.restlet

## Class Request

- java.lang.Object
- - org.restlet.Message
  - - org.restlet.Request

Direct Known Subclasses:
  ConnectedRequest, HttpRequest, WrapperRequest

    public class Request
    extends Message

Generic request sent by client connectors. It is then received by server connectors and processed by Restlets. This request can also be processed by a chain of Restlets, on both client and server sides. Requests are uniform across all types of connectors, protocols and components.

Author:
  Jerome Louvel
See Also:
  `Response`, `Uniform`

### Constructor Summary

Constructors
Constructor and Description
`Request()` Constructor.
`Request(Method method, Reference resourceRef)` Constructor.
`Request(Method method, Reference resourceRef, Representation entity)` Constructor.
`Request(Method method, java.lang.String resourceUri)` Constructor.
`Request(Method method, java.lang.String resourceUri, Representation entity)` Constructor.
`Request(Request request)` Copy constructor.

### Method Summary

Methods
`boolean` `abort()` Ask the connector to attempt to abort the related network connection, for example immediately closing the socket.
`void` `commit(Response response)` Asks the server connector to immediately commit the given response associated to this request, making it ready to be sent back to the client.
`ChallengeResponse` `getChallengeResponse()` Returns the authentication response sent by a client to an origin server.
`ClientInfo` `getClientInfo()` Returns the client-specific information.
`Conditions` `getConditions()` Returns the modifiable conditions applying to this request.
`Series<Cookie>` `getCookies()` Returns the modifiable series of cookies provided by the client.
`static Request` `getCurrent()` Returns the request associated to the current thread.
`Reference` `getHostRef()` Returns the host reference.
`int` `getMaxForwards()` Returns the maximum number of intermediaries.
`Method` `getMethod()` Returns the method.
`Uniform` `getOnResponse()` Returns the callback invoked on response reception.
`Reference` `getOriginalRef()` Returns the original reference as requested by the client.
`Protocol` `getProtocol()` Returns the protocol used or to be used, if known.
`ChallengeResponse` `getProxyChallengeResponse()` Returns the authentication response sent by a client to a proxy.
`java.util.List<Range>` `getRanges()` Returns the ranges to return from the target resource's representation.
`Reference` `getReferrerRef()` Returns the referrer reference if available.
`Reference` `getResourceRef()` Returns the reference of the target resource.
`Reference` `getRootRef()` Returns the application root reference.
`boolean` `isConfidential()` Implemented based on the `Protocol.isConfidential()` method for the request's protocol returned by `getProtocol()`;
`boolean` `isEntityAvailable()` Indicates if a content is available and can be sent.
`boolean` `isExpectingResponse()` Indicates if an associated response is expected.
`void` `setChallengeResponse(ChallengeResponse challengeResponse)` Sets the authentication response sent by a client to an origin server.
`void` `setClientInfo(ClientInfo clientInfo)` Sets the client-specific information.
`void` `setConditions(Conditions conditions)` Sets the conditions applying to this request.
`void` `setCookies(Series<Cookie> cookies)` Sets the modifiable series of cookies provided by the client.
`void` `setHostRef(Reference hostRef)` Sets the host reference.
`void` `setHostRef(java.lang.String hostUri)` Sets the host reference using an URI string.
`void` `setMaxForwards(int maxForwards)` Sets the maximum number of intermediaries.
`void` `setMethod(Method method)` Sets the method called.
`void` `setOnResponse(Uniform onResponseCallback)` Sets the callback invoked on response reception.
`void` `setOriginalRef(Reference originalRef)` Sets the original reference requested by the client.
`void` `setProtocol(Protocol protocol)` Sets the protocol used or to be used.
`void` `setProxyChallengeResponse(ChallengeResponse challengeResponse)` Sets the authentication response sent by a client to a proxy.
`void` `setRanges(java.util.List<Range> ranges)` Sets the modifiable list of ranges to return from the target resource's representation.
`void` `setReferrerRef(Reference referrerRef)` Sets the referrer reference if available.
`void` `setReferrerRef(java.lang.String referrerUri)` Sets the referrer reference if available using an URI string.
`void` `setResourceRef(Reference resourceRef)` Sets the target resource reference.
`void` `setResourceRef(java.lang.String resourceUri)` Sets the target resource reference using an URI string.
`void` `setRootRef(Reference rootRef)` Sets the application root reference.
`java.lang.String` `toString()` Displays a synthesis of the request like an HTTP request line.

### Methods inherited from class org.restlet.Message

`getAttributes, getCacheDirectives, getDate, getEntity, getEntityAsForm, getEntityAsText, getOnSent, getRecipientsInfo, getWarnings, release, setAttributes, setCacheDirectives, setDate, setEntity, setEntity, setOnSent, setRecipientsInfo, setWarnings`

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

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

### Constructor Detail

#### Request

    public Request()

Constructor.

#### Request

    public Request(Method method,
           Reference resourceRef)

Constructor.

Parameters:
  `method` - The call's method.
  `resourceRef` - The resource reference.

#### Request

    public Request(Method method,
           Reference resourceRef,
           Representation entity)

Constructor.

Parameters:
  `method` - The call's method.
  `resourceRef` - The resource reference.
  `entity` - The entity.

#### Request

    public Request(Method method,
           java.lang.String resourceUri)

Constructor.

Parameters:
  `method` - The call's method.
  `resourceUri` - The resource URI.

#### Request

    public Request(Method method,
           java.lang.String resourceUri,
           Representation entity)

Constructor.

Parameters:
  `method` - The call's method.
  `resourceUri` - The resource URI.
  `entity` - The entity.

#### Request

    public Request(Request request)

Copy constructor.

Parameters:
  `request` - The request to copy.

### Method Detail

#### getCurrent

    public static Request getCurrent()

Returns the request associated to the current thread. This is reusing the `Response.getCurrent()` method. Warning: this method should only be used under duress. You should by default prefer obtaining the current context using methods such as `Handler.getRequest()`.

Returns:
  The thread's request.

#### abort

    public boolean abort()

Ask the connector to attempt to abort the related network connection, for example immediately closing the socket.

Returns:
  True if the request was aborted.

#### commit

    public void commit(Response response)

Asks the server connector to immediately commit the given response associated to this request, making it ready to be sent back to the client. Note that all server connectors don't necessarily support this feature.

#### getChallengeResponse

    public ChallengeResponse getChallengeResponse()

Returns the authentication response sent by a client to an origin server. Note that when used with HTTP connectors, this property maps to the "Authorization" header.

Returns:
  The authentication response sent by a client to an origin server.

#### getClientInfo

    public ClientInfo getClientInfo()

Returns the client-specific information. Creates a new instance if no one has been set.

Returns:
  The client-specific information.

#### getConditions

    public Conditions getConditions()

Returns the modifiable conditions applying to this request. Creates a new instance if no one has been set.

Returns:
  The conditions applying to this call.

#### getCookies

    public Series<Cookie> getCookies()

Returns the modifiable series of cookies provided by the client. Creates a new instance if no one has been set.
Note that when used with HTTP connectors, this property maps to the "Cookie" header.

Returns:
  The cookies provided by the client.

#### getHostRef

    public Reference getHostRef()

Returns the host reference. This may be different from the resourceRef's host, for example for URNs and other URIs that don't contain host information.
Note that when used with HTTP connectors, this property maps to the "Host" header.

Returns:
  The host reference.

#### getMaxForwards

    public int getMaxForwards()

Returns the maximum number of intermediaries.

Returns:
  The maximum number of intermediaries.

#### getMethod

    public Method getMethod()

Returns the method.

Returns:
  The method.

#### getOnResponse

    public Uniform getOnResponse()

Returns the callback invoked on response reception. If the value is not null, then the associated request will be executed asynchronously.

Returns:
  The callback invoked on response reception.

#### getOriginalRef

    public Reference getOriginalRef()

Returns the original reference as requested by the client. Note that this property is not used during request routing. See the `getResourceRef()` method for details.

Returns:
  The original reference.
See Also:
  `getResourceRef()`

#### getProtocol

    public Protocol getProtocol()

Returns the protocol used or to be used, if known.

Returns:
  The protocol used or to be used.

#### getProxyChallengeResponse

    public ChallengeResponse getProxyChallengeResponse()

Returns the authentication response sent by a client to a proxy. Note that when used with HTTP connectors, this property maps to the "Proxy-Authorization" header.

Returns:
  The authentication response sent by a client to a proxy.

#### getRanges

    public java.util.List<Range> getRanges()

Returns the ranges to return from the target resource's representation. Note that when used with HTTP connectors, this property maps to the "Range" header.

Returns:
  The ranges to return.

#### getReferrerRef

    public Reference getReferrerRef()

Returns the referrer reference if available. Note that when used with HTTP connectors, this property maps to the "Referer" header.

Returns:
  The referrer reference.

#### getResourceRef

    public Reference getResourceRef()

Returns the reference of the target resource. This reference is especially important during routing, dispatching and resource finding. During such processing, its base reference is constantly updated to reflect the reference of the parent Restlet or resource and the remaining part of the URI that must be routed or analyzed. If you need to get the URI reference originally requested by the client, then you should use the `getOriginalRef()` method instead. Also, note that beside the update of its base property, the resource reference can be modified during the request processing. For example, the `TunnelService` associated to an application can extract some special extensions or query parameters and replace them by semantically equivalent properties on the request object. Therefore, the resource reference can become different from the original reference. Finally, when sending out requests via a dispatcher such as `Context.getClientDispatcher()` or `Context.getServerDispatcher()`, if the reference contains URI template variables, those variables are automatically resolved using the request's attributes.

Returns:
  The reference of the target resource.
See Also:
  `getOriginalRef()`, `getHostRef()`

#### getRootRef

    public Reference getRootRef()

Returns the application root reference.

Returns:
  The application root reference.

#### isConfidential

    public boolean isConfidential()

Implemented based on the `Protocol.isConfidential()` method for the request's protocol returned by `getProtocol()`;

Specified by:
  `isConfidential` in class `Message`
Returns:
  True if the message is confidential.

#### isEntityAvailable

    public boolean isEntityAvailable()

Indicates if a content is available and can be sent. Several conditions must be met: the method must allow the sending of content, the content must exists and have some available data.

Overrides:
  `isEntityAvailable` in class `Message`
Returns:
  True if a content is available and can be sent.

#### isExpectingResponse

    public boolean isExpectingResponse()

Indicates if an associated response is expected.

Returns:
  True if an associated response is expected.

#### setChallengeResponse

    public void setChallengeResponse(ChallengeResponse challengeResponse)

Sets the authentication response sent by a client to an origin server. Note that when used with HTTP connectors, this property maps to the "Authorization" header.

Parameters:
  `challengeResponse` - The authentication response sent by a client to an origin server.

#### setClientInfo

    public void setClientInfo(ClientInfo clientInfo)

Sets the client-specific information.

Parameters:
  `clientInfo` - The client-specific information.

#### setConditions

    public void setConditions(Conditions conditions)

Sets the conditions applying to this request.

Parameters:
  `conditions` - The conditions applying to this request.

#### setCookies

    public void setCookies(Series<Cookie> cookies)

Sets the modifiable series of cookies provided by the client. Note that when used with HTTP connectors, this property maps to the "Cookie" header. This method clears the current series and adds all entries in the parameter series.

Parameters:
  `cookies` - A series of cookies provided by the client.

#### setHostRef

    public void setHostRef(Reference hostRef)

Sets the host reference. Note that when used with HTTP connectors, this property maps to the "Host" header.

Parameters:
  `hostRef` - The host reference.

#### setHostRef

    public void setHostRef(java.lang.String hostUri)

Sets the host reference using an URI string. Note that when used with HTTP connectors, this property maps to the "Host" header.

Parameters:
  `hostUri` - The host URI.

#### setMaxForwards

    public void setMaxForwards(int maxForwards)

Sets the maximum number of intermediaries.

Parameters:
  `maxForwards` - The maximum number of intermediaries.

#### setMethod

    public void setMethod(Method method)

Sets the method called.

Parameters:
  `method` - The method called.

#### setOnResponse

    public void setOnResponse(Uniform onResponseCallback)

Sets the callback invoked on response reception. If the value is not null, then the associated request will be executed asynchronously.

Parameters:
  `onResponseCallback` - The callback invoked on response reception.

#### setOriginalRef

    public void setOriginalRef(Reference originalRef)

Sets the original reference requested by the client.

Parameters:
  `originalRef` - The original reference.
See Also:
  `getOriginalRef()`

#### setProtocol

    public void setProtocol(Protocol protocol)

Sets the protocol used or to be used.

Parameters:
  `protocol` - The protocol used or to be used.

#### setProxyChallengeResponse

    public void setProxyChallengeResponse(ChallengeResponse challengeResponse)

Sets the authentication response sent by a client to a proxy. Note that when used with HTTP connectors, this property maps to the "Proxy-Authorization" header.

Parameters:
  `challengeResponse` - The authentication response sent by a client to a proxy.

#### setRanges

    public void setRanges(java.util.List<Range> ranges)

Sets the modifiable list of ranges to return from the target resource's representation. Note that when used with HTTP connectors, this property maps to the "Range" header. This method clears the current list and adds all entries in the parameter list.

Parameters:
  `ranges` - A list of ranges.

#### setReferrerRef

    public void setReferrerRef(Reference referrerRef)

Sets the referrer reference if available. Note that when used with HTTP connectors, this property maps to the "Referer" header.

Parameters:
  `referrerRef` - The referrer reference.

#### setReferrerRef

    public void setReferrerRef(java.lang.String referrerUri)

Sets the referrer reference if available using an URI string. Note that when used with HTTP connectors, this property maps to the "Referer" header.

Parameters:
  `referrerUri` - The referrer URI.
See Also:
  `setReferrerRef(Reference)`

#### setResourceRef

    public void setResourceRef(Reference resourceRef)

Sets the target resource reference. If the reference is relative, it will be resolved as an absolute reference. Also, the context's base reference will be reset. Finally, the reference will be normalized to ensure a consistent handling of the call.

Parameters:
  `resourceRef` - The resource reference.
See Also:
  `getResourceRef()`

#### setResourceRef

    public void setResourceRef(java.lang.String resourceUri)

Sets the target resource reference using an URI string. Note that the URI can be either absolute or relative to the context's base reference.

Parameters:
  `resourceUri` - The resource URI.
See Also:
  `setResourceRef(Reference)`

#### setRootRef

    public void setRootRef(Reference rootRef)

Sets the application root reference.

Parameters:
  `rootRef` - The application root reference.

#### toString

    public java.lang.String toString()

Displays a synthesis of the request like an HTTP request line.

Overrides:
  `toString` in class `java.lang.Object`
Returns:
  A synthesis of the request like an HTTP request line.