com.noelios.restlet.http
Class HttpClientCall

java.lang.Object
  extended by com.noelios.restlet.http.HttpCall
      extended by com.noelios.restlet.http.HttpClientCall
Direct Known Subclasses:
StreamClientCall

public abstract class HttpClientCall
extends HttpCall

Low-level HTTP client call.

Author:
Jerome Louvel

Constructor Summary
HttpClientCall(HttpClientHelper helper, java.lang.String method, java.lang.String requestUri)
          Constructor setting the request address to the local host.
 
Method Summary
static Representation copyResponseEntityHeaders(java.lang.Iterable<Parameter> responseHeaders, Representation representation)
          Copies entity headers into a response and ensures that a non null representation is returned when at least one entity header is present.
protected  long getContentLength()
          Returns the content length of the request entity if know, Representation.UNKNOWN_SIZE otherwise.
 HttpClientHelper getHelper()
          Returns the HTTP client helper.
static java.lang.String getLocalAddress()
          Returns the local IP address or 127.0.0.1 if the resolution fails.
protected  Representation getRepresentation(java.io.InputStream stream)
          Returns the representation wrapping the given stream.
protected  Representation getRepresentation(java.nio.channels.ReadableByteChannel channel)
          Returns the representation wrapping the given channel.
abstract  java.nio.channels.WritableByteChannel getRequestEntityChannel()
          Returns the request entity channel if it exists.
abstract  java.io.OutputStream getRequestEntityStream()
          Returns the request entity stream if it exists.
abstract  java.io.OutputStream getRequestHeadStream()
          Returns the request head stream if it exists.
 Representation getResponseEntity(Response response)
          Returns the response entity if available.
abstract  java.nio.channels.ReadableByteChannel getResponseEntityChannel(long size)
          Returns the response channel if it exists.
abstract  java.io.InputStream getResponseEntityStream(long size)
          Returns the response entity stream if it exists.
protected  boolean isClientKeepAlive()
          Indicates if the client wants a persistent connection.
protected  boolean isServerKeepAlive()
          Indicates if the server wants a persistent connection.
static java.lang.String parseContentDisposition(java.lang.String value)
          Parse the Content-Disposition header value
 Status sendRequest(Request request)
          Sends the request to the client.
protected  boolean shouldRequestBeChunked(Request request)
          Indicates if the request entity should be chunked.
 
Methods inherited from class com.noelios.restlet.http.HttpCall
formatDate, getClientAddress, getClientPort, getConnectorService, getContentLength, getHostDomain, getHostPort, getLogger, getMethod, getProtocol, getReasonPhrase, getRequestHeaders, getRequestUri, getResponseHeaders, getServerAddress, getServerPort, getStatusCode, getVersion, isConfidential, isConnectionBroken, isKeepAlive, isRequestChunked, isResponseChunked, parseDate, setClientAddress, setClientPort, setConfidential, setHostDomain, setHostPort, setMethod, setProtocol, setReasonPhrase, setRequestUri, setServerAddress, setServerPort, setStatusCode, setVersion
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HttpClientCall

public HttpClientCall(HttpClientHelper helper,
                      java.lang.String method,
                      java.lang.String requestUri)
Constructor setting the request address to the local host.

Parameters:
helper - The parent HTTP client helper.
method - The method name.
requestUri - The request URI.
Method Detail

copyResponseEntityHeaders

public static Representation copyResponseEntityHeaders(java.lang.Iterable<Parameter> responseHeaders,
                                                       Representation representation)
                                                throws java.lang.NumberFormatException
Copies entity headers into a response and ensures that a non null representation is returned when at least one entity header is present.

Parameters:
responseHeaders - The headers to copy.
representation - The Representation to update.
Returns:
a representation with the entity headers of the response or null if no representation has been provided and the response has not sent any entity header.
Throws:
java.lang.NumberFormatException
See Also:
Engine.copyResponseHeaders(Response, Series), HttpClientConverter.copyResponseTransportHeaders(Iterable, Response)

getLocalAddress

public static java.lang.String getLocalAddress()
Returns the local IP address or 127.0.0.1 if the resolution fails.

Returns:
The local IP address or 127.0.0.1 if the resolution fails.

parseContentDisposition

public static java.lang.String parseContentDisposition(java.lang.String value)
Parse the Content-Disposition header value

Parameters:
value - Content-disposition header
Returns:
Filename

getContentLength

protected long getContentLength()
Returns the content length of the request entity if know, Representation.UNKNOWN_SIZE otherwise.

Returns:
The request content length.

getHelper

public HttpClientHelper getHelper()
Returns the HTTP client helper.

Returns:
The HTTP client helper.

getRepresentation

protected Representation getRepresentation(java.io.InputStream stream)
Returns the representation wrapping the given stream.

Parameters:
stream - The response input stream.
Returns:
The wrapping representation.

getRepresentation

protected Representation getRepresentation(java.nio.channels.ReadableByteChannel channel)
Returns the representation wrapping the given channel.

Parameters:
channel - The response channel.
Returns:
The wrapping representation.

getRequestEntityChannel

public abstract java.nio.channels.WritableByteChannel getRequestEntityChannel()
Returns the request entity channel if it exists.

Returns:
The request entity channel if it exists.

getRequestEntityStream

public abstract java.io.OutputStream getRequestEntityStream()
Returns the request entity stream if it exists.

Returns:
The request entity stream if it exists.

getRequestHeadStream

public abstract java.io.OutputStream getRequestHeadStream()
Returns the request head stream if it exists.

Returns:
The request head stream if it exists.

getResponseEntity

public Representation getResponseEntity(Response response)
Returns the response entity if available. Note that no metadata is associated by default, you have to manually set them from your headers.

Parameters:
response - the Response to get the entity from
Returns:
The response entity if available.

getResponseEntityChannel

public abstract java.nio.channels.ReadableByteChannel getResponseEntityChannel(long size)
Returns the response channel if it exists.

Parameters:
size - The expected entity size or -1 if unknown.
Returns:
The response channel if it exists.

getResponseEntityStream

public abstract java.io.InputStream getResponseEntityStream(long size)
Returns the response entity stream if it exists.

Parameters:
size - The expected entity size or -1 if unknown.
Returns:
The response entity stream if it exists.

isClientKeepAlive

protected boolean isClientKeepAlive()
Description copied from class: HttpCall
Indicates if the client wants a persistent connection.

Specified by:
isClientKeepAlive in class HttpCall
Returns:
True if the client wants a persistent connection.

isServerKeepAlive

protected boolean isServerKeepAlive()
Description copied from class: HttpCall
Indicates if the server wants a persistent connection.

Specified by:
isServerKeepAlive in class HttpCall
Returns:
True if the server wants a persistent connection.

sendRequest

public Status sendRequest(Request request)
Sends the request to the client. Commits the request line, headers and optional entity and send them over the network.

Parameters:
request - The high-level request.
Returns:
the status of the communication

shouldRequestBeChunked

protected boolean shouldRequestBeChunked(Request request)
Indicates if the request entity should be chunked.

Returns:
True if the request should be chunked


Copyright © 2005-2008 Noelios Technologies.