Class CookieEncoder


  • public class CookieEncoder
    extends Object
    Encodes Cookies into an HTTP header value. This encoder can encode the HTTP cookie version 0, 1, and 2.

    This encoder is stateful. It maintains an internal data structure that holds the Cookies added by the addCookie(String, String) method. Once encode() is called, all added Cookies are encoded into an HTTP header value and all Cookies in the internal data structure are removed so that the encoder can start over.

     // Client-side example
     HttpRequest req = ...;
     CookieEncoder encoder = new CookieEncoder(false);
     encoder.addCookie("JSESSIONID", "1234");
     res.setHeader("Cookie", encoder.encode());
    
     // Server-side example
     HttpResponse res = ...;
     CookieEncoder encoder = new CookieEncoder(true);
     encoder.addCookie("JSESSIONID", "1234");
     res.setHeader("Set-Cookie", encoder.encode());
     
    See Also:
    CookieDecoder
    • Constructor Detail

      • CookieEncoder

        public CookieEncoder​(boolean server)
        Creates a new encoder.
        Parameters:
        server - true if and only if this encoder is supposed to encode server-side cookies. false if and only if this encoder is supposed to encode client-side cookies.
      • CookieEncoder

        public CookieEncoder​(boolean server,
                             boolean strict)
        Creates a new encoder.
        Parameters:
        server - true if and only if this encoder is supposed to encode server-side cookies. false if and only if this encoder is supposed to encode client-side cookies.
        strict - true if and only if this encoder is supposed to validate characters according to RFC6265.
    • Method Detail

      • addCookie

        public void addCookie​(String name,
                              String value)
        Adds a new Cookie created with the specified name and value to this encoder.
      • addCookie

        public void addCookie​(Cookie cookie)
        Adds the specified Cookie to this encoder.
      • encode

        public String encode()
        Encodes the Cookies which were added by addCookie(Cookie) so far into an HTTP header value. If no Cookies were added, an empty string is returned. Be aware that calling this method will clear the content of the CookieEncoder