Class JettyClientCall


  • public class JettyClientCall
    extends ClientCall
    HTTP client connector call based on Jetty's HttpRequest class.
    • Field Detail

      • clientHelper

        private final HttpClientHelper clientHelper
        The associated HTTP client.
      • httpRequest

        private final org.eclipse.jetty.client.HttpRequest httpRequest
        The wrapped HTTP request.
      • httpResponse

        private volatile org.eclipse.jetty.client.api.Response httpResponse
        The wrapped HTTP response.
      • inputStreamResponseListener

        private volatile org.eclipse.jetty.client.util.InputStreamResponseListener inputStreamResponseListener
        The wrapped input stream response listener.
      • responseHeadersAdded

        private volatile boolean responseHeadersAdded
        Indicates if the response headers were added.
    • Constructor Detail

      • JettyClientCall

        public JettyClientCall​(HttpClientHelper helper,
                               java.lang.String method,
                               java.lang.String requestUri)
                        throws java.io.IOException
        Constructor.
        Parameters:
        helper - The parent HTTP client helper.
        method - The method name.
        requestUri - The request URI.
        Throws:
        java.io.IOException
    • Method Detail

      • getHttpRequest

        public org.eclipse.jetty.client.HttpRequest getHttpRequest()
        Returns the HTTP request.
        Returns:
        The HTTP request.
      • getHttpResponse

        public org.eclipse.jetty.client.api.Response getHttpResponse()
        Returns the HTTP response.
        Returns:
        The HTTP response.
      • getInputStreamResponseListener

        public org.eclipse.jetty.client.util.InputStreamResponseListener getInputStreamResponseListener()
        Returns the input stream response listener.
        Returns:
        The input stream response listener.
      • getReasonPhrase

        public java.lang.String getReasonPhrase()
        Returns the response reason phrase.
        Overrides:
        getReasonPhrase in class Call
        Returns:
        The response reason phrase.
      • getRequestEntityChannel

        public java.nio.channels.WritableByteChannel getRequestEntityChannel()
        Description copied from class: ClientCall
        Returns the request entity channel if it exists.
        Specified by:
        getRequestEntityChannel in class ClientCall
        Returns:
        The request entity channel if it exists.
      • getRequestEntityStream

        public java.io.OutputStream getRequestEntityStream()
        Description copied from class: ClientCall
        Returns the request entity stream if it exists.
        Specified by:
        getRequestEntityStream in class ClientCall
        Returns:
        The request entity stream if it exists.
      • getRequestHeadStream

        public java.io.OutputStream getRequestHeadStream()
        Description copied from class: ClientCall
        Returns the request head stream if it exists.
        Specified by:
        getRequestHeadStream in class ClientCall
        Returns:
        The request head stream if it exists.
      • getResponseEntityChannel

        public java.nio.channels.ReadableByteChannel getResponseEntityChannel​(long size)
        Description copied from class: ClientCall
        Returns the response channel if it exists.
        Specified by:
        getResponseEntityChannel in class ClientCall
        Parameters:
        size - The expected entity size or -1 if unknown.
        Returns:
        The response channel if it exists.
      • getResponseEntityStream

        public java.io.InputStream getResponseEntityStream​(long size)
        Description copied from class: ClientCall
        Returns the response entity stream if it exists.
        Specified by:
        getResponseEntityStream in class ClientCall
        Parameters:
        size - The expected entity size or -1 if unknown.
        Returns:
        The response entity 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. As jetty client decode the input stream on the fly in HttpReceiver.responseContent(org.eclipse.jetty.client.HttpExchange, java.nio.ByteBuffer, org.eclipse.jetty.util.Callback) we have to clear the Variant.getEncodings() to avoid decoding the input stream another time.
        Overrides:
        getResponseEntity in class ClientCall
        Parameters:
        response - the Response to get the entity from
        Returns:
        The response entity if available.
      • getResponseHeaders

        public Series<Header> getResponseHeaders()
        Returns the modifiable list of response headers.
        Overrides:
        getResponseHeaders in class Call
        Returns:
        The modifiable list of response headers.
      • getServerAddress

        public java.lang.String getServerAddress()
        Returns the response address.
        Corresponds to the IP address of the responding server.
        Overrides:
        getServerAddress in class Call
        Returns:
        The response address.
      • getStatusCode

        public int getStatusCode()
        Returns the response status code.
        Overrides:
        getStatusCode in class Call
        Returns:
        The response status code.
      • 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.
        Overrides:
        sendRequest in class ClientCall
        Parameters:
        request - The high-level request.
        Returns:
        The result status.
      • sendRequest

        public void sendRequest​(Request request,
                                Response response,
                                Uniform callback)
                         throws java.lang.Exception
        Description copied from class: ClientCall
        Sends the request to the client. Commits the request line, headers and optional entity and send them over the network.
        Overrides:
        sendRequest in class ClientCall
        Parameters:
        request - The high-level request.
        response - The high-level response.
        callback - The callback invoked upon request completion.
        Throws:
        java.lang.Exception