私は標準ライブラリ(Apacheコモン、jax、jboss、javaxなど)の中から、すべての標準mimeタイプ(別名content-type)の値をリストするインターフェースまたは列挙を探しています。
このインターフェイスを他のクラスで深くしすぎて、束全体をgwtソースコードとして含めることが困難になることは避けてください。
例えば
interface ContentType{
String JSON = "Application/JSON";
blah ... blah ...
}
または、
enum ContentType{
JSON("Application/JSON"),
blah ... blah ...
}
このためのクラスGuavaがあります: com.google.common.net.MediaType
。
ソースコードおよび Issue 82 に記載されているように、Guava 12でリリースされました。 ソース も利用可能です。
https://docs.Oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html から:
staticjava.lang.String APPLICATION_ATOM_XML "application/atom+xml"
staticMediaType APPLICATION_ATOM_XML_TYPE "application/atom+xml"
staticjava.lang.String APPLICATION_FORM_URLENCODED "application/x-www-form-urlencoded"
staticMediaType APPLICATION_FORM_URLENCODED_TYPE "application/x-www-form-urlencoded"
staticjava.lang.String APPLICATION_JSON "application/json"
staticMediaType APPLICATION_JSON_TYPE "application/json"
staticjava.lang.String APPLICATION_OCTET_STREAM "application/octet-stream"
staticMediaType APPLICATION_OCTET_STREAM_TYPE "application/octet-stream"
staticjava.lang.String APPLICATION_SVG_XML "application/svg+xml"
staticMediaType APPLICATION_SVG_XML_TYPE "application/svg+xml"
staticjava.lang.String APPLICATION_XHTML_XML "application/xhtml+xml"
staticMediaType APPLICATION_XHTML_XML_TYPE "application/xhtml+xml"
staticjava.lang.String APPLICATION_XML "application/xml"
staticMediaType APPLICATION_XML_TYPE "application/xml"
staticjava.lang.String MEDIA_TYPE_WILDCARD The value of a type or subtype wildcard: "*"
staticjava.lang.String MULTIPART_FORM_DATA "multipart/form-data"
staticMediaType MULTIPART_FORM_DATA_TYPE "multipart/form-data"
staticjava.lang.String TEXT_HTML "text/html"
staticMediaType TEXT_HTML_TYPE "text/html"
staticjava.lang.String TEXT_PLAIN "text/plain"
staticMediaType TEXT_PLAIN_TYPE "text/plain"
staticjava.lang.String TEXT_XML "text/xml"
staticMediaType TEXT_XML_TYPE "text/xml"
staticjava.lang.String WILDCARD "*/*"
staticMediaType WILDCARD_TYPE "*/*"
Spring Framework を使用している場合、一般的なコンテンツタイプに対して MediaType クラスがあります。
MediaType.TEXT_HTML
MediaType.TEXT_PLAIN
MediaType.TEXT_XML
MediaType.APPLICATION_JSON
MediaType.IMAGE_JPEG
...
クラス4.2以降から、パッケージorg.Apache.http.entity.ContentType
からのクラス org.Apache.httpcomponents.httpcore
もあります。
javax.ws.rs.core.MediaType
from JAX-RS
Java 7が助けになります!
ファイルまたはファイル名を渡すと、MIMEタイプが返されます。
String mimeType = MimetypesFileTypeMap
.getDefaultFileTypeMap()
.getContentType(attachment.getFileName());
http://docs.Oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html
androidannotations にはMediaType
クラスもあり、Androidで使用したい場合に備えています。 here を参照してください。
Androidを使用している場合、複数の選択肢があり、最初の選択肢は一種の「enum」のみです。
HTTP
(API 22で廃止予定)、たとえばHTTP.PLAIN_TEXT_TYPE
またはMimeTypeMap
、たとえばfinal String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
FileProvider.getType()
も参照してください。URLConnection
次のメソッドを提供します:例えば
@Override
public String getType(Uri uri) {
return URLConnection.getFileNameMap().getContentTypeFor(
uri.getLastPathSegment());
}
上記の回答で指摘されているように、必要な定数を持つjavax.ws.rs.core.MediaType
を使用できます。
また、1つの場所ですべてのJavax定数への参照を提供する、非常に便利で便利なリンクを共有したかったのです。 https://docs.Oracle.com/javaee/7/api/constant-values .html 。