Je recherche parmi les bibliothèques standard (comme apache commons, jax, jboss, javax) une interface ou une énumération qui répertorie les valeurs de tous les types mime standard (aka content-type).
Cette interface ne doit pas être encombrée trop profondément avec d'autres classes qui rendraient difficile l'inclusion de tout le groupe en tant que code source gwt.
par exemple
interface ContentType{
String JSON = "Application/JSON";
blah ... blah ...
}
ou,
enum ContentType{
JSON("Application/JSON"),
blah ... blah ...
}
java
gwt
mime-types
content-type
guava
Geek béni
la source
la source
Réponses:
Bibliothèque de goyaves
Nous avons une goyave classe pour cela:
com.google.common.net.MediaType
.Il a été publié avec Guava 12 comme indiqué dans le code source et dans le numéro 823 . Des sources sont également disponibles.
la source
com.google.common.net.MediaType
,MediaType.toString()
pas plus qu'une constante de temps de compilation et donc pas utilisable dans les annotationsDepuis https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html :
la source
Si vous utilisez Spring Framework, il existe une classe MediaType pour les types de contenu courants:
la source
APPLICATION_ZIP
Il y a maintenant aussi la classe
org.apache.http.entity.ContentType
de packageorg.apache.httpcomponents.httpcore
, à partir de 4.2 et plus.la source
application/pdf
type mime. Malheureusement, cette classe n'a pas de constante pour pdf :(javax.ws.rs.core.MediaType
de JAX-RSla source
Java 7 à la rescousse!
Vous pouvez transmettre le fichier ou le nom du fichier et il renverra le type MIME.
http://docs.oracle.com/javase/7/docs/api/javax/activation/MimetypesFileTypeMap.html
la source
Il existe également une
MediaType
classe dans les annotations android au cas où vous voudriez l'utiliser avec Android! Regardez ici .la source
Si vous êtes sur Android, vous avez plusieurs choix, où seul le premier est une sorte de "énumération":
HTTP
(qui est obsolète dans l'API 22), par exempleHTTP.PLAIN_TEXT_TYPE
ouMimeTypeMap
, par exemplefinal String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
Voir aussi
FileProvider.getType()
.URLConnection
qui fournit les méthodes suivantes:guessContentTypeFromStream(InputStream is)
guessContentTypeFromName(String url)
getFileNameMap()
Par exemple
la source
Comme indiqué par une réponse ci-dessus, vous pouvez utiliser celui
javax.ws.rs.core.MediaType
qui a les constantes requises.Je voulais également partager un lien vraiment cool et pratique que j'ai trouvé qui donne une référence à toutes les constantes Javax en un seul endroit - https://docs.oracle.com/javaee/7/api/constant-values.html .
la source
J'ai résolu cela avec une classe statique:
la source
Comme déjà indiqué dans la réponse précédente, les types MIME les plus courants sont configurés dans un serveur Web. Par exemple, dans tomcat conf / nous avons web.xml avec le MIME suivant configuré:
Créez un écouteur de démarrage qui intervient au démarrage de l'application Web et analyse ce fichier XML, crée l'ENUMS pour vous et le lie au contexte de servlet pour le partage en aval.
la source