Class ContentType

  • All Implemented Interfaces:
    java.io.Serializable

    @Contract(threading=IMMUTABLE)
    public final class ContentType
    extends java.lang.Object
    implements java.io.Serializable
    Content type information consisting of a MIME type and an optional charset.

    This class makes no attempts to verify validity of the MIME type. The input parameters of the create(String, String) method, however, may not contain characters <">, <;>, <,> reserved by the HTTP specification.

    Since:
    4.2
    See Also:
    Serialized Form
    • Field Detail

      • CHARSET

        private static final java.lang.String CHARSET
        Param that represent charset constant.
        See Also:
        Constant Field Values
      • APPLICATION_ATOM_XML

        public static final ContentType APPLICATION_ATOM_XML
      • APPLICATION_FORM_URLENCODED

        public static final ContentType APPLICATION_FORM_URLENCODED
      • APPLICATION_JSON

        public static final ContentType APPLICATION_JSON
      • APPLICATION_NDJSON

        public static final ContentType APPLICATION_NDJSON
        Public constant media type for application/x-ndjson.
        Since:
        5.1
      • APPLICATION_OCTET_STREAM

        public static final ContentType APPLICATION_OCTET_STREAM
      • APPLICATION_PDF

        public static final ContentType APPLICATION_PDF
        Public constant media type for application/pdf.
        Since:
        5.1
      • APPLICATION_SOAP_XML

        public static final ContentType APPLICATION_SOAP_XML
      • APPLICATION_SVG_XML

        public static final ContentType APPLICATION_SVG_XML
      • APPLICATION_XHTML_XML

        public static final ContentType APPLICATION_XHTML_XML
      • APPLICATION_XML

        public static final ContentType APPLICATION_XML
      • APPLICATION_RSS_XML

        public static final ContentType APPLICATION_RSS_XML
        Public constant media type for application/rss+xml.
        Since:
        5.1
      • IMAGE_JPEG

        public static final ContentType IMAGE_JPEG
      • IMAGE_TIFF

        public static final ContentType IMAGE_TIFF
      • IMAGE_WEBP

        public static final ContentType IMAGE_WEBP
      • MULTIPART_FORM_DATA

        public static final ContentType MULTIPART_FORM_DATA
      • MULTIPART_MIXED

        public static final ContentType MULTIPART_MIXED
        Public constant media type for multipart/mixed.
        Since:
        5.1
      • MULTIPART_RELATED

        public static final ContentType MULTIPART_RELATED
        Public constant media type for multipart/related.
        Since:
        5.1
      • TEXT_MARKDOWN

        public static final ContentType TEXT_MARKDOWN
        Public constant media type for text/markdown.
        Since:
        5.1
      • TEXT_PLAIN

        public static final ContentType TEXT_PLAIN
      • EMPTY_NAME_VALUE_PAIR_ARRAY

        private static final NameValuePair[] EMPTY_NAME_VALUE_PAIR_ARRAY
        An empty immutable NameValuePair array.
      • CONTENT_TYPE_MAP

        @Deprecated
        private static final java.util.Map<java.lang.String,​ContentType> CONTENT_TYPE_MAP
        Deprecated.
        To be removed in 6.0
      • DEFAULT_TEXT

        public static final ContentType DEFAULT_TEXT
      • DEFAULT_BINARY

        public static final ContentType DEFAULT_BINARY
      • mimeType

        private final java.lang.String mimeType
      • charset

        private final java.nio.charset.Charset charset
    • Constructor Detail

      • ContentType

        ContentType​(java.lang.String mimeType,
                    java.nio.charset.Charset charset)
      • ContentType

        ContentType​(java.lang.String mimeType,
                    java.nio.charset.Charset charset,
                    NameValuePair[] params)
    • Method Detail

      • getMimeType

        public java.lang.String getMimeType()
      • getCharset

        public java.nio.charset.Charset getCharset()
      • getCharset

        public java.nio.charset.Charset getCharset​(java.nio.charset.Charset defaultCharset)
        Gets this Charset if it's non-null, otherwise, return the given defaultCharset.
        Parameters:
        defaultCharset - A default Charset.
        Returns:
        this Charset if it's non-null, or the given defaultCharset.
        Since:
        5.2
      • getParameter

        public java.lang.String getParameter​(java.lang.String name)
        Since:
        4.3
      • toString

        public java.lang.String toString()
        Generates textual representation of this content type which can be used as the value of a Content-Type header.
        Overrides:
        toString in class java.lang.Object
      • valid

        private static boolean valid​(java.lang.String s)
      • create

        public static ContentType create​(java.lang.String mimeType,
                                         java.nio.charset.Charset charset)
        Creates a new instance of ContentType.
        Parameters:
        mimeType - MIME type. It may not be null or empty. It may not contain characters <">, <;>, <,> reserved by the HTTP specification.
        charset - charset.
        Returns:
        content type
      • create

        public static ContentType create​(java.lang.String mimeType)
        Creates a new instance of ContentType without a charset.
        Parameters:
        mimeType - MIME type. It may not be null or empty. It may not contain characters <">, <;>, <,> reserved by the HTTP specification.
        Returns:
        content type
      • create

        public static ContentType create​(java.lang.String mimeType,
                                         java.lang.String charset)
                                  throws java.nio.charset.UnsupportedCharsetException
        Creates a new instance of ContentType.
        Parameters:
        mimeType - MIME type. It may not be null or empty. It may not contain characters <">, <;>, <,> reserved by the HTTP specification.
        charset - charset. It may not contain characters <">, <;>, <,> reserved by the HTTP specification. This parameter is optional.
        Returns:
        content type
        Throws:
        java.nio.charset.UnsupportedCharsetException - Thrown when the named charset is not available in this instance of the Java virtual machine
      • create

        public static ContentType create​(java.lang.String mimeType,
                                         NameValuePair... params)
                                  throws java.nio.charset.UnsupportedCharsetException
        Creates a new instance of ContentType with the given parameters.
        Parameters:
        mimeType - MIME type. It may not be null or empty. It may not contain characters <">, <;>, <,> reserved by the HTTP specification.
        params - parameters.
        Returns:
        content type
        Throws:
        java.nio.charset.UnsupportedCharsetException
        Since:
        4.4
      • parse

        public static ContentType parse​(java.lang.CharSequence s)
                                 throws java.nio.charset.UnsupportedCharsetException
        Parses textual representation of Content-Type value.
        Parameters:
        s - text
        Returns:
        content type Content-Type value or null.
        Throws:
        java.nio.charset.UnsupportedCharsetException - Thrown when the named charset is not available in this instance of the Java virtual machine
      • parseLenient

        public static ContentType parseLenient​(java.lang.CharSequence s)
                                        throws java.nio.charset.UnsupportedCharsetException
        Parses textual representation of Content-Type value ignoring invalid charsets.
        Parameters:
        s - text
        Returns:
        content type Content-Type value or null.
        Throws:
        java.nio.charset.UnsupportedCharsetException - Thrown when the named charset is not available in this instance of the Java virtual machine
      • parse

        private static ContentType parse​(java.lang.CharSequence s,
                                         boolean strict)
                                  throws java.nio.charset.UnsupportedCharsetException
        Throws:
        java.nio.charset.UnsupportedCharsetException
      • getByMimeType

        @Deprecated
        public static ContentType getByMimeType​(java.lang.String mimeType)
        Deprecated.
        Do not use. This method was made public by mistake.
        Returns Content-Type for the given MIME type.
        Parameters:
        mimeType - MIME type
        Returns:
        content type or null if not known.
        Since:
        4.5
      • getCharset

        public static java.nio.charset.Charset getCharset​(ContentType contentType,
                                                          java.nio.charset.Charset defaultCharset)
        Gets a ContentType's Charset if neither are null, otherwise, return the given defaultCharset.
        Parameters:
        contentType - the ContentType to test and query.
        defaultCharset - a default Charset.
        Returns:
        the ContentType's Charset if neither are null, otherwise, return the given defaultCharset.
        Since:
        5.2
      • withCharset

        public ContentType withCharset​(java.nio.charset.Charset charset)
        Creates a new instance with this MIME type and the given Charset.
        Parameters:
        charset - charset
        Returns:
        a new instance with this MIME type and the given Charset.
        Since:
        4.3
      • withCharset

        public ContentType withCharset​(java.lang.String charset)
        Creates a new instance with this MIME type and the given Charset name.
        Parameters:
        charset - name
        Returns:
        a new instance with this MIME type and the given Charset name.
        Throws:
        java.nio.charset.UnsupportedCharsetException - Thrown when the named charset is not available in this instance of the Java virtual machine
        Since:
        4.3
      • withParameters

        public ContentType withParameters​(NameValuePair... params)
                                   throws java.nio.charset.UnsupportedCharsetException
        Creates a new instance with this MIME type and the given parameters.
        Parameters:
        params - parameters.
        Returns:
        a new instance with this MIME type and the given parameters.
        Throws:
        java.nio.charset.UnsupportedCharsetException
        Since:
        4.4
      • isSameMimeType

        public boolean isSameMimeType​(ContentType contentType)