Je développe des services RESTful avec Jersey et cela fonctionne très bien avec les méthodes GET
. Mais je ne peux obtenir les paramètres null
qu'en utilisant la méthode POST
. Voici l'exemple de code de mon projet.
<form action="rest/console/sendemail" method="post">
<input type="text" id="email" name="email">
<button type="submit">Send</button>
</form>
@POST
@Path("/sendemail")
public Response sendEmail(@QueryParam("email") String email) {
System.out.println(email);
return new Response();
}
L'email que je reçois de la poste est toujours nul. Quelqu'un a l'idée?
J'ai changé QueryParam en FormParam, le paramètre que j'obtiens est toujours nul.
Dans un formulaire soumis via POST
, email
n'est pas un @QueryParam
comme dans /[email protected]
.
Si vous soumettez votre code HTML form
via POST
, email
est un @FormParam
.
Modifier:
Il s'agit d'une ressource JAX-RS minimale qui peut gérer votre formulaire HTML.
package rest;
import javax.ws.rs.FormParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/console")
public class Console {
@POST
@Path("/sendemail")
@Produces(MediaType.TEXT_PLAIN)
public Response sendEmail(@FormParam("email") String email) {
System.out.println(email);
return Response.ok("email=" + email).build();
}
}
Juste pour noter un petit détail - chaque valeur d'entrée que vous souhaitez soumettre dans le cadre de votre formulaire doit avoir l'attribut "nom".
<input type="text" id="email" name="email" />