Ich suche in den Standardbibliotheken (wie Apache Commons, Jax, JBoss, Javax) nach einer Schnittstelle oder Aufzählung, in der die Werte aller Standard-MIME-Typen (auch bekannt als Inhaltstypen) aufgelistet sind.
Diese Schnittstelle sollte nicht zu stark mit anderen Klassen belastet sein, die es schwierig machen würden, den gesamten Haufen als GWT-Quellcode einzuschließen.
beispielsweise
interface ContentType{
String JSON = "Application/JSON";
blah ... blah ...
}
oder,
enum ContentType{
JSON("Application/JSON"),
blah ... blah ...
}
java
gwt
mime-types
content-type
guava
Gesegneter Geek
quelle
quelle
Antworten:
Guava Bibliothek
Wir haben eine Guavenklasse 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.
quelle
com.google.common.net.MediaType
, da diesMediaType.toString()
keine Kompilierungszeitkonstante ist und daher nicht in Anmerkungen verwendet werden kannVon https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html :
quelle
Wenn Sie Spring Framework verwenden, gibt es eine MediaType- Klasse für allgemeine Inhaltstypen:
quelle
APPLICATION_ZIP
Es gibt jetzt auch die Klasse
org.apache.http.entity.ContentType
ab Paketorg.apache.httpcomponents.httpcore
ab 4.2.quelle
application/pdf
MIME-Typ brauchte . Leider hat diese Klasse keine Konstante für pdf :(javax.ws.rs.core.MediaType
von JAX-RSquelle
Java 7 zur Rettung!
Sie können entweder die Datei oder den Dateinamen übergeben und es wird der MIME-Typ zurückgegeben.
http://docs.oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html
quelle
Es gibt auch eine
MediaType
Klasse in Android-Annotationen, falls Sie mit Android verwenden möchten! Siehe hier .quelle
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
final String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
Siehe zum Beispiel auch
FileProvider.getType()
.URLConnection
das bietet die folgenden Methoden:guessContentTypeFromStream(InputStream is)
guessContentTypeFromName(String url)
getFileNameMap()
Beispielsweise
quelle
Wie in der obigen Antwort ausgeführt, können Sie
javax.ws.rs.core.MediaType
die erforderlichen Konstanten verwenden.Ich wollte auch einen wirklich coolen und praktischen Link teilen, der einen Verweis auf alle Javax-Konstanten an einem Ort enthält - https://docs.oracle.com/javaee/7/api/constant-values.html .
quelle
Ich habe das mit einer statischen Klasse gelöst:
quelle
Wie bereits in einer früheren Antwort erwähnt, werden die meisten gängigen MIME-Typen auf einem Webserver konfiguriert. Zum Beispiel haben wir in tomcat conf / web.xml mit folgendem MIME konfiguriert:
Erstellen Sie einen Start-Listener, der beim Starten der Webanwendung aktiviert wird, diese XML-Datei analysiert, die ENUMS für Sie erstellt und an den Servlet-Kontext bindet, um sie nachgelagert freizugeben.
quelle