Class HttpClientFilter

java.lang.Object
org.glassfish.grizzly.filterchain.BaseFilter
All Implemented Interfaces:
org.glassfish.grizzly.filterchain.Filter, org.glassfish.grizzly.monitoring.MonitoringAware<HttpProbe>

public class HttpClientFilter extends HttpCodecFilter
Client side HttpCodecFilter implementation, which is responsible for decoding HttpResponsePacket and encoding HttpRequestPacket messages. This Filter is usually used, when we build an asynchronous HTTP client connection.
Author:
Alexey Stashok
See Also:
  • Constructor Details

    • HttpClientFilter

      public HttpClientFilter()
      Constructor, which creates HttpClientFilter instance
    • HttpClientFilter

      public HttpClientFilter(int maxHeadersSize)
      Constructor, which creates HttpClientFilter instance, with the specific secure and max header size parameter.
      Parameters:
      maxHeadersSize - the maximum size of the HTTP message header.
  • Method Details

    • handleWrite

      public org.glassfish.grizzly.filterchain.NextAction handleWrite(org.glassfish.grizzly.filterchain.FilterChainContext ctx) throws IOException
      Description copied from class: HttpCodecFilter
      The method is called, once we need to serialize a HttpPacket, which may represent HTTP packet header, content or content chunk. Filter gets HttpPacket, which represents a HTTP header, content, or content part. As the result of "write" transformation - we will get Buffer, which will represent serialized HTTP packet.
      Specified by:
      handleWrite in interface org.glassfish.grizzly.filterchain.Filter
      Overrides:
      handleWrite in class HttpCodecFilter
      Parameters:
      ctx - Request processing context
      Returns:
      NextAction
      Throws:
      IOException
    • handleRead

      public org.glassfish.grizzly.filterchain.NextAction handleRead(org.glassfish.grizzly.filterchain.FilterChainContext ctx) throws IOException
      The method is called, once we have received a Buffer, which has to be transformed into HTTP response packet part. Filter gets Buffer, which represents a part or complete HTTP response message. As the result of "read" transformation - we will get HttpContent message, which will represent HTTP response packet content (might be zero length content) and reference to a HttpHeader, which contains HTTP response message header.
      Specified by:
      handleRead in interface org.glassfish.grizzly.filterchain.Filter
      Overrides:
      handleRead in class org.glassfish.grizzly.filterchain.BaseFilter
      Parameters:
      ctx - Request processing context
      Returns:
      NextAction
      Throws:
      IOException
    • handleEvent

      public org.glassfish.grizzly.filterchain.NextAction handleEvent(org.glassfish.grizzly.filterchain.FilterChainContext ctx, org.glassfish.grizzly.filterchain.FilterChainEvent event) throws IOException
      Specified by:
      handleEvent in interface org.glassfish.grizzly.filterchain.Filter
      Overrides:
      handleEvent in class org.glassfish.grizzly.filterchain.BaseFilter
      Throws:
      IOException
    • onHttpPacketParsed

      protected boolean onHttpPacketParsed(HttpHeader httpHeader, org.glassfish.grizzly.filterchain.FilterChainContext ctx)
      Description copied from class: HttpCodecFilter
      Callback method, called when HttpPacket parsing has been completed.
      Specified by:
      onHttpPacketParsed in class HttpCodecFilter
      Parameters:
      httpHeader - HttpHeader, which represents parsed HTTP packet header
      ctx - processing context.
      Returns:
      true if an error has occurred while processing the header portion of the HTTP request, otherwise returns false.s
    • onHttpHeaderParsed

      protected boolean onHttpHeaderParsed(HttpHeader httpHeader, org.glassfish.grizzly.Buffer buffer, org.glassfish.grizzly.filterchain.FilterChainContext ctx)
      Description copied from class: HttpCodecFilter
      Callback invoked when the HTTP message header parsing is complete.
      Specified by:
      onHttpHeaderParsed in class HttpCodecFilter
      Parameters:
      httpHeader - HttpHeader, which represents parsed HTTP packet header
      buffer - Buffer the header was parsed from
      ctx - processing context.
      Returns:
      true if an error has occurred while processing the header portion of the HTTP request, otherwise returns false.
    • onHttpHeaderError

      protected void onHttpHeaderError(HttpHeader httpHeader, org.glassfish.grizzly.filterchain.FilterChainContext ctx, Throwable t) throws IOException
      Description copied from class: HttpCodecFilter

      Callback which is invoked when parsing an HTTP message header fails. The processing logic has to take care about error handling and following connection closing.

      Specified by:
      onHttpHeaderError in class HttpCodecFilter
      Parameters:
      httpHeader - HttpHeader, which represents HTTP packet header
      ctx - the FilterChainContext processing this request
      t - the cause of the error
      Throws:
      IOException
    • onHttpContentError

      protected void onHttpContentError(HttpHeader httpHeader, org.glassfish.grizzly.filterchain.FilterChainContext ctx, Throwable t) throws IOException
      Description copied from class: HttpCodecFilter

      Callback which is invoked when parsing an HTTP message payload fails. The processing logic has to take care about error handling and following connection closing.

      Specified by:
      onHttpContentError in class HttpCodecFilter
      Parameters:
      httpHeader - HttpHeader, which represents HTTP packet header
      ctx - the FilterChainContext processing this request
      t - the cause of the error
      Throws:
      IOException
    • onInitialLineParsed

      protected void onInitialLineParsed(HttpHeader httpHeader, org.glassfish.grizzly.filterchain.FilterChainContext ctx)
      Description copied from class: HttpCodecFilter

      Invoked when either the request line or status line has been parsed.

      Specified by:
      onInitialLineParsed in class HttpCodecFilter
      Parameters:
      httpHeader - HttpHeader, which represents HTTP packet header
      ctx - processing context.
    • onInitialLineEncoded

      protected void onInitialLineEncoded(HttpHeader header, org.glassfish.grizzly.filterchain.FilterChainContext ctx)
      Description copied from class: HttpCodecFilter

      Invoked when the initial response line has been encoded in preparation to being transmitted to the user-agent.

      Specified by:
      onInitialLineEncoded in class HttpCodecFilter
      Parameters:
      header - HttpHeader, which represents HTTP packet header
      ctx - processing context.
    • onHttpHeadersParsed

      protected void onHttpHeadersParsed(HttpHeader httpHeader, MimeHeaders headers, org.glassfish.grizzly.filterchain.FilterChainContext ctx)
      Description copied from class: HttpCodecFilter

      Invoked when HTTP headers portion comes for HttpHeader message. Depending on the transfer encoding being used by the current request, this method may be invoked multiple times.

      Specified by:
      onHttpHeadersParsed in class HttpCodecFilter
      Parameters:
      httpHeader - HttpHeader, which represents HTTP packet header
      headers - the headers portion, that has been parsed
      ctx - processing context.
    • onHttpHeadersEncoded

      protected void onHttpHeadersEncoded(HttpHeader httpHeader, org.glassfish.grizzly.filterchain.FilterChainContext ctx)
      Description copied from class: HttpCodecFilter

      Invoked when HTTP headers have been encoded in preparation to being transmitted to the user-agent.

      Specified by:
      onHttpHeadersEncoded in class HttpCodecFilter
      Parameters:
      httpHeader - HttpHeader, which represents HTTP packet header
      ctx - processing context.
    • onHttpContentParsed

      protected void onHttpContentParsed(HttpContent content, org.glassfish.grizzly.filterchain.FilterChainContext ctx)
      Description copied from class: HttpCodecFilter

      Invoked as request/response body content has been processed by this Filter.

      Specified by:
      onHttpContentParsed in class HttpCodecFilter
      Parameters:
      content - request/response body content
      ctx - processing context.
    • onHttpContentEncoded

      protected void onHttpContentEncoded(HttpContent content, org.glassfish.grizzly.filterchain.FilterChainContext ctx)
      Description copied from class: HttpCodecFilter

      Invoked when a HTTP body chunk has been encoded in preparation to being transmitted to the user-agent.

      Specified by:
      onHttpContentEncoded in class HttpCodecFilter
      Parameters:
      content - HttpContent, which represents HTTP packet header
      ctx - processing context.
    • clearResponse

      protected final void clearResponse(org.glassfish.grizzly.Connection connection)
    • encodeHttpPacket

      protected org.glassfish.grizzly.Buffer encodeHttpPacket(org.glassfish.grizzly.filterchain.FilterChainContext ctx, HttpPacket input)
      Overrides:
      encodeHttpPacket in class HttpCodecFilter