J'utilise le printemps pour créer mon application web.Comment configurer le ressort pour ignorer l'en-tête Accepter invalide?
Dans ma base de classe, je configuration personnalisée WebMvcConfigurationSupport
ContentNegotiationConfigurer
comme suit:
@Override
public void configureContentNegotiation(final ContentNegotiationConfigurer configurer) {
configurer
.favorPathExtension(false)
.favorParameter(true)
.parameterName("mediaType")
.ignoreAcceptHeader(false)
.useJaf(false)
.defaultContentType(MediaType.APPLICATION_XML)
.mediaType("json", MediaType.APPLICATION_JSON)
.mediaType("xml", MediaType.APPLICATION_XML);
}
Je ne peux pas mettre ignoreAcceptHeader
à true
, puisque certains de mes clients comptent sur cet en-tête pour la réponse.
Mais lorsque je tente d'accéder à mon API avec un en-tête Accept
invalide comme Accept: :*/*
(notez que deux points supplémentaires), le ressort redirige vers la page d'erreur /error
, avec le journal suivant:
12:18:14.498 468443 [6061] [qtp1184831653-73] DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver
Resolving exception from handler [public MyController.myAction() throws java.io.IOException]: org.springframework.web.HttpMediaTypeNotAcceptableException:
Could not parse accept header [: application/json,*/*]: Invalid mime type ": application/json": Invalid token character ':' in token ": application"
Puis-je changer cette comportement? Je veux ignorer Accept
en-tête complètement au lieu de sauter à la page d'erreur. Est-ce possible?