Vous ne pouvez pas utiliser l'API standard. HttpServletRequest
représente une requête reçue par le serveur, l'ajout de nouveaux paramètres n'est donc pas une option valide (en ce qui concerne l'API).
Vous pouvez en principe implémenter une sous-classe de HttpServletRequestWrapper
qui encapsule la requête d'origine et intercepte les méthodes getParameter()
, et transmet la requête encapsulée lorsque vous transférez.
Si vous allez dans cette voie, vous devez utiliser un Filter
pour remplacer votre HttpServletRequest
avec un HttpServletRequestWrapper
:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
if (servletRequest instanceof HttpServletRequest) {
HttpServletRequest request = (HttpServletRequest) servletRequest;
// Check wether the current request needs to be able to support the body to be read multiple times
if (MULTI_READ_HTTP_METHODS.contains(request.getMethod())) {
// Override current HttpServletRequest with custom implementation
filterChain.doFilter(new HttpServletRequestWrapper(request), servletResponse);
return;
}
}
filterChain.doFilter(servletRequest, servletResponse);
}
Je suppose que vous avez obtenu cette mise en œuvre de [ici] (http://stackoverflow.com/questions/1046721/accessing-the- raw-body-of-a-put-ou-post-demande). Le MULTI_READ_HTTP_METHODS était un peu confus, et bien que maintenant je comprenne à quoi il sert, je demande que vous supprimiez cela si entièrement. – Neil