Class Headers


  • public final class Headers
    extends Object
    The header fields of a single HTTP message. Values are uninterpreted strings; use Request and Response for interpreted headers. This class maintains the order of the header fields within the HTTP message.

    This class tracks header values line-by-line. A field with multiple comma- separated values on the same line will be treated as a field with a single value by this class. It is the caller's responsibility to detect and split on commas if their field permits multiple values. This simplifies use of single-valued fields whose values routinely contain commas, such as cookies or dates.

    This class trims whitespace from values. It never returns values with leading or trailing whitespace.

    Instances of this class are immutable. Use Headers.Builder to create instances.

    • Method Detail

      • get

        public String get​(String name)
        Returns the last value corresponding to the specified field, or null.
      • getDate

        public Date getDate​(String name)
        Returns the last value corresponding to the specified field parsed as an HTTP date, or null if either the field is absent or cannot be parsed as a date.
      • size

        public int size()
        Returns the number of field values.
      • name

        public String name​(int index)
        Returns the field at position or null if that is out of range.
      • value

        public String value​(int index)
        Returns the value at index or null if that is out of range.
      • names

        public Set<String> names()
        Returns an immutable case-insensitive set of header names.
      • values

        public List<String> values​(String name)
        Returns an immutable list of the header values for name.
      • toString

        public String toString()
        Description copied from class: Object
        Returns a string containing a concise, human-readable description of this object. Subclasses are encouraged to override this method and provide an implementation that takes into account the object's type and data. The default implementation is equivalent to the following expression:
           getClass().getName() + '@' + Integer.toHexString(hashCode())

        See Writing a useful toString method if you intend implementing your own toString method.

        Overrides:
        toString in class Object
        Returns:
        a printable representation of this object.
      • of

        public static Headers of​(String... namesAndValues)
        Returns headers for the alternating header names and values. There must be an even number of arguments, and they must alternate between header names and values.
      • of

        public static Headers of​(Map<String,​String> headers)
        Returns headers for the header names and values in the Map.