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

      • 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_OCTET_STREAM

        public static final ContentType APPLICATION_OCTET_STREAM
      • 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
      • MULTIPART_FORM_DATA

        public static final ContentType MULTIPART_FORM_DATA
      • TEXT_PLAIN

        public static final ContentType TEXT_PLAIN
      • DEFAULT_TEXT

        public static final ContentType DEFAULT_TEXT
      • DEFAULT_BINARY

        public static final ContentType DEFAULT_BINARY
    • Method Detail

      • getMimeType

        public java.lang.String getMimeType()
      • getCharset

        public java.nio.charset.Charset getCharset()
      • 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
      • 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.String s)
                                 throws ParseException,
                                        java.nio.charset.UnsupportedCharsetException
        Parses textual representation of Content-Type value.
        Parameters:
        s - text
        Returns:
        content type
        Throws:
        ParseException - if the given text does not represent a valid Content-Type value.
        java.nio.charset.UnsupportedCharsetException - Thrown when the named charset is not available in this instance of the Java virtual machine
      • get

        public static ContentType get​(HttpEntity entity)
                               throws ParseException,
                                      java.nio.charset.UnsupportedCharsetException
        Extracts Content-Type value from HttpEntity exactly as specified by the Content-Type header of the entity. Returns null if not specified.
        Parameters:
        entity - HTTP entity
        Returns:
        content type
        Throws:
        ParseException - if the given text does not represent a valid Content-Type value.
        java.nio.charset.UnsupportedCharsetException - Thrown when the named charset is not available in this instance of the Java virtual machine
      • getLenient

        public static ContentType getLenient​(HttpEntity entity)
        Extracts Content-Type value from HttpEntity. Returns null if not specified or incorrect (could not be parsed)..
        Parameters:
        entity - HTTP entity
        Returns:
        content type
        Since:
        4.4
      • getOrDefault

        public static ContentType getOrDefault​(HttpEntity entity)
                                        throws ParseException,
                                               java.nio.charset.UnsupportedCharsetException
        Extracts Content-Type value from HttpEntity or returns the default value DEFAULT_TEXT if not explicitly specified.
        Parameters:
        entity - HTTP entity
        Returns:
        content type
        Throws:
        ParseException - if the given text does not represent a valid Content-Type value.
        java.nio.charset.UnsupportedCharsetException - Thrown when the named charset is not available in this instance of the Java virtual machine
      • getLenientOrDefault

        public static ContentType getLenientOrDefault​(HttpEntity entity)
                                               throws ParseException,
                                                      java.nio.charset.UnsupportedCharsetException
        Extracts Content-Type value from HttpEntity or returns the default value DEFAULT_TEXT if not explicitly specified or incorrect (could not be parsed).
        Parameters:
        entity - HTTP entity
        Returns:
        content type
        Throws:
        ParseException
        java.nio.charset.UnsupportedCharsetException
        Since:
        4.4
      • getByMimeType

        public static ContentType getByMimeType​(java.lang.String mimeType)
        Returns Content-Type for the given MIME type.
        Parameters:
        mimeType - MIME type
        Returns:
        content type or null if not known.
        Since:
        4.5
      • 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 -
        Returns:
        a new instance with this MIME type and the given parameters.
        Throws:
        java.nio.charset.UnsupportedCharsetException
        Since:
        4.4