Interface HttpHeaders


  • public interface HttpHeaders
    An injectable interface that provides access to HTTP header information. All methods throw IllegalStateException if called outside the scope of a request (e.g. from a provider constructor).
    Since:
    1.0
    See Also:
    Context
    • Method Detail

      • getRequestHeader

        java.util.List<java.lang.String> getRequestHeader​(java.lang.String name)
        Get the values of a HTTP request header if the header exists on the current request. The returned value will be a read-only List if the specified header exists or null if it does not. This is a shortcut for getRequestHeaders().get(name).
        Parameters:
        name - the header name, case insensitive.
        Returns:
        a read-only list of header values if the specified header exists, otherwise null.
        Throws:
        java.lang.IllegalStateException - if called outside the scope of a request.
      • getHeaderString

        java.lang.String getHeaderString​(java.lang.String name)

        Get a HTTP header as a single string value.

        Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value class or using its toString method if a header delegate is not available.
        Parameters:
        name - the HTTP header.
        Returns:
        the HTTP header value. If the HTTP header is not present then null is returned. If the HTTP header is present but has no value then the empty string is returned. If the HTTP header is present more than once then the values of joined together and separated by a ',' character.
        Since:
        2.0
        See Also:
        getRequestHeader(java.lang.String)
      • containsHeaderString

        boolean containsHeaderString​(java.lang.String name,
                                     java.lang.String valueSeparatorRegex,
                                     java.util.function.Predicate<java.lang.String> valuePredicate)
        Checks whether a header with a specific name and value (or item of the token-separated value list) exists. Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value class or using its toString method if a header delegate is not available.

        For example: containsHeaderString("cache-control", ",", "no-store"::equalsIgnoreCase) will return true if a Cache-Control header exists that has the value no-store, the value No-Store or the value Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform (missing comma), or the value no - store (whitespace within value).

        Parameters:
        name - the message header.
        valueSeparatorRegex - Regular expression that separates the header value into single values. null does not split.
        valuePredicate - value must fulfil this predicate.
        Returns:
        true if and only if a header with the given name exists, having either a whitespace-trimmed value matching the predicate, or having at least one whitespace-trimmed single value in a token-separated list of single values.
        Since:
        4.0
        See Also:
        getRequestHeaders(), getHeaderString(String)
      • containsHeaderString

        default boolean containsHeaderString​(java.lang.String name,
                                             java.util.function.Predicate<java.lang.String> valuePredicate)
        Checks whether a header with a specific name and value (or item of the comma-separated value list) exists. Each single non-string header value is converted to String using a RuntimeDelegate.HeaderDelegate if one is available via RuntimeDelegate.createHeaderDelegate(java.lang.Class) for the header value class or using its toString method if a header delegate is not available.

        For example: containsHeaderString("cache-control", "no-store"::equalsIgnoreCase) will return true if a Cache-Control header exists that has the value no-store, the value No-Store or the value Max-Age, NO-STORE, no-transform, but false when it has the value no-store;no-transform (missing comma), or the value no - store (whitespace within value).

        Parameters:
        name - the message header.
        valuePredicate - value must fulfil this predicate.
        Returns:
        true if and only if a header with the given name exists, having either a whitespace-trimmed value matching the predicate, or having at least one whitespace-trimmed single value in a comma-separated list of single values.
        Since:
        4.0
        See Also:
        getRequestHeaders(), getHeaderString(String)
      • getRequestHeaders

        MultivaluedMap<java.lang.String,​java.lang.String> getRequestHeaders()
        Get the values of HTTP request headers. The returned Map is case-insensitive wrt. keys and is read-only. The method never returns null.
        Returns:
        a read-only map of header names and values.
        Throws:
        java.lang.IllegalStateException - if called outside the scope of a request.
      • getAcceptableMediaTypes

        java.util.List<MediaType> getAcceptableMediaTypes()

        Get a list of media types that are acceptable for the response.

        If no acceptable media types are specified, a read-only list containing a single wildcard media type instance is returned.
        Returns:
        a read-only list of requested response media types sorted according to their q-value, with highest preference first.
        Throws:
        java.lang.IllegalStateException - if called outside the scope of a request.
      • getAcceptableLanguages

        java.util.List<java.util.Locale> getAcceptableLanguages()

        Get a list of languages that are acceptable for the response.

        If no acceptable languages are specified, a read-only list containing a single wildcard Locale instance (with language field set to "*") is returned.
        Returns:
        a read-only list of acceptable languages sorted according to their q-value, with highest preference first.
        Throws:
        java.lang.IllegalStateException - if called outside the scope of a request.
      • getMediaType

        MediaType getMediaType()
        Get the media type of the request entity.
        Returns:
        the media type or null if there is no request entity.
        Throws:
        java.lang.IllegalStateException - if called outside the scope of a request.
      • getLanguage

        java.util.Locale getLanguage()
        Get the language of the request entity.
        Returns:
        the language of the entity or null if not specified.
        Throws:
        java.lang.IllegalStateException - if called outside the scope of a request.
      • getCookies

        java.util.Map<java.lang.String,​Cookie> getCookies()
        Get any cookies that accompanied the request.
        Returns:
        a read-only map of cookie name (String) to Cookie.
        Throws:
        java.lang.IllegalStateException - if called outside the scope of a request
      • getDate

        java.util.Date getDate()
        Get message date.
        Returns:
        the message date, otherwise null if not present.
        Since:
        2.0
      • getLength

        int getLength()
        Get Content-Length value.
        Returns:
        Content-Length as integer if present and valid number. In other cases returns -1.
        Since:
        2.0