Class CookieOptimizingWire

java.lang.Object
com.jcabi.http.wire.CookieOptimizingWire
All Implemented Interfaces:
Wire

@Immutable public final class CookieOptimizingWire extends Object implements Wire
Wire that compresses cookies before sending.

This wire compresses all provided Cookie headers into one and removes empty cookies, for example:

 String html = new JdkRequest("http://goggle.com")
   .through(CookieOptimizingWire.class)
   .header(HttpHeaders.Cookie, "alpha=test")
   .header(HttpHeaders.Cookie, "beta=")
   .header(HttpHeaders.Cookie, "gamma=foo")
   .fetch()
   .body();

An actual HTTP request will be sent with just one Cookie header with a value alpha=test; gamma=foo.

It is highly recommended to use this wire decorator when you're working with cookies.

The class is immutable and thread-safe.

Since:
0.10
See Also:
  • Constructor Details

    • CookieOptimizingWire

      public CookieOptimizingWire(Wire wire)
      Public ctor.
      Parameters:
      wire - Original wire
  • Method Details

    • send

      public Response send(Request req, String home, String method, Collection<Map.Entry<String,String>> headers, InputStream content, int connect, int read) throws IOException
      Description copied from interface: Wire
      Send request and return response.
      Specified by:
      send in interface Wire
      Parameters:
      req - Request
      home - URI to fetch
      method - HTTP method
      headers - Headers
      content - HTTP body
      connect - The connect timeout
      read - The read timeout
      Returns:
      Response obtained
      Throws:
      IOException - if fails