Class ContentType

java.lang.Object
org.apache.hc.core5.http.ContentType
All Implemented Interfaces:
Serializable

@Contract(threading=IMMUTABLE) public final class ContentType extends Object implements 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:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • CHARSET

      private static final String CHARSET
      Param that represent charset constant.
      See Also:
    • 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_PROBLEM_JSON

      public static final ContentType APPLICATION_PROBLEM_JSON
      Public constant media type for application/problem+json.
      Since:
      5.1
      See Also:
    • APPLICATION_PROBLEM_XML

      public static final ContentType APPLICATION_PROBLEM_XML
      Public constant media type for application/problem+xml.
      Since:
      5.1
      See Also:
    • APPLICATION_RSS_XML

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

      public static final ContentType IMAGE_BMP
    • IMAGE_GIF

      public static final ContentType IMAGE_GIF
    • IMAGE_JPEG

      public static final ContentType IMAGE_JPEG
    • IMAGE_PNG

      public static final ContentType IMAGE_PNG
    • IMAGE_SVG

      public static final ContentType IMAGE_SVG
    • 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
    • TEXT_HTML

      public static final ContentType TEXT_HTML
    • 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
    • TEXT_XML

      public static final ContentType TEXT_XML
    • TEXT_EVENT_STREAM

      public static final ContentType TEXT_EVENT_STREAM
      Public constant media type for text/event-stream.
      Since:
      5.1
      See Also:
    • WILDCARD

      public static final ContentType WILDCARD
    • 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 Map<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 String mimeType
    • charset

      private final Charset charset
    • params

      private final NameValuePair[] params
  • Constructor Details

  • Method Details

    • getMimeType

      public String getMimeType()
    • getCharset

      public Charset getCharset()
    • getCharset

      public Charset getCharset(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 String getParameter(String name)
      Since:
      4.3
    • toString

      public 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 Object
    • valid

      private static boolean valid(String s)
    • create

      public static ContentType create(String mimeType, 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(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(String mimeType, String charset) throws 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:
      UnsupportedCharsetException - Thrown when the named charset is not available in this instance of the Java virtual machine
    • create

      private static ContentType create(HeaderElement helem, boolean strict)
    • create

      private static ContentType create(String mimeType, NameValuePair[] params, boolean strict)
    • create

      public static ContentType create(String mimeType, NameValuePair... params) throws 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:
      UnsupportedCharsetException
      Since:
      4.4
    • parse

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

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

      private static ContentType parse(CharSequence s, boolean strict) throws UnsupportedCharsetException
      Throws:
      UnsupportedCharsetException
    • getByMimeType

      @Deprecated public static ContentType getByMimeType(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 Charset getCharset(ContentType contentType, 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(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(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:
      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 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:
      UnsupportedCharsetException
      Since:
      4.4
    • isSameMimeType

      public boolean isSameMimeType(ContentType contentType)