Ich suche in den Standardbibliotheken (wie Apache Commons, Jax, Jboss, Javax) nach einer Schnittstelle oder einem Enum, die die Werte aller Standard-Mime-Typen (aka Inhaltstypen) aufführt.
Diese Schnittstelle sollte nicht zu tief mit anderen Klassen belastet werden, die die Aufnahme des gesamten Bündels als gwt-Quellcode erschweren würden.
zum Beispiel
interface ContentType{
String JSON = "Application/JSON";
blah ... blah ...
}
oder,
enum ContentType{
JSON("Application/JSON"),
blah ... blah ...
}
Wir haben eine Guava -Klasse dafür: com.google.common.net.MediaType
.
Es wurde mit Guava 12 veröffentlicht, wie im Quellcode und in Ausgabe 823 angegeben. Quellen sind ebenfalls verfügbar.
Von 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 "*/*"
Wenn Sie Spring Framework verwenden, gibt es eine MediaType -Klasse für gängige Inhaltstypen:
MediaType.TEXT_HTML
MediaType.TEXT_PLAIN
MediaType.TEXT_XML
MediaType.APPLICATION_JSON
MediaType.IMAGE_JPEG
...
Es gibt jetzt auch die Klasse org.Apache.http.entity.ContentType
aus dem Paket org.Apache.httpcomponents.httpcore
, beginnend mit 4.2.
javax.ws.rs.core.MediaType
von JAX-RS
Java 7 zur Rettung!
Sie können entweder die Datei oder den Dateinamen übergeben, und der MIME-Typ wird zurückgegeben.
String mimeType = MimetypesFileTypeMap
.getDefaultFileTypeMap()
.getContentType(attachment.getFileName());
http://docs.Oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html
Es gibt auch eine MediaType
-Klasse in androidannotations für den Fall, dass Sie Android verwenden möchten! Siehe hier .
Wenn Sie auf Android) sind, haben Sie mehrere Möglichkeiten, wobei nur die erste eine Art "Aufzählung" ist:
HTTP
(was in API 22 veraltet ist), zum BeispielHTTP.PLAIN_TEXT_TYPE
OderMimeTypeMap
, zum Beispielfinal String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
FileProvider.getType()
.URLConnection
das die folgenden Methoden bereitstellt: Zum Beispiel
@Override
public String getType(Uri uri) {
return URLConnection.getFileNameMap().getContentTypeFor(
uri.getLastPathSegment());
}
Wie aus einer Antwort oben hervorgeht, können Sie javax.ws.rs.core.MediaType
verwenden, der die erforderlichen Konstanten hat.
Ich wollte auch einen wirklich coolen und praktischen Link teilen, den ich gefunden habe und der einen Verweis auf alle Javax-Konstanten an einer Stelle gibt - https://docs.Oracle.com/javaee/7/api/constant-values.html .