Class ClientCall

    • Field Detail

      • helper

        private volatile HttpClientHelper helper
        The parent HTTP client helper.
    • Constructor Detail

      • ClientCall

        public ClientCall​(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

      • 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.
      • 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.
      • 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.
      • getUnClosedResponseEntityStream

        private java.io.InputStream getUnClosedResponseEntityStream​(java.io.InputStream inputStream)
        Checks if the given input stream really contains bytes to be read. If so, returns the inputStream otherwise returns null.
        Parameters:
        inputStream - the inputStream to check.
        Returns:
        null if the given inputStream does not contain any byte, an inputStream otherwise.
      • isClientKeepAlive

        protected boolean isClientKeepAlive()
        Description copied from class: Call
        Indicates if the client wants a persistent connection.
        Specified by:
        isClientKeepAlive in class Call
        Returns:
        True if the client wants a persistent connection.
      • isServerKeepAlive

        protected boolean isServerKeepAlive()
        Description copied from class: Call
        Indicates if the server wants a persistent connection.
        Specified by:
        isServerKeepAlive in class Call
        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
      • sendRequest

        public void sendRequest​(Request request,
                                Response response,
                                Uniform callback)
                         throws java.lang.Exception
        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.
        response - The high-level response.
        callback - The callback invoked upon request completion.
        Throws:
        java.lang.Exception
      • shouldRequestBeChunked

        protected boolean shouldRequestBeChunked​(Request request)
        Indicates if the request entity should be chunked.
        Returns:
        True if the request should be chunked