Wygląda na to, że Jersey 2.0 (używając apletu 3.1) nie jest w stanie zdekodować parametru, gdy właściwość charset
jest określona w nagłówku .Jersey i @FormParam nie działają, gdy zestaw znaków jest określony w Content-Type
Na przykład biorąc pod uwagę następujący punkt końcowy:
@POST
@Path("/hello")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
public Response hello(@FormParam("name") String name) {
System.out.println(name);
return ok();
}
Ten curl żądanie działa:
curl -X POST -H "content-type: application/x-www-form-urlencoded" -d "name=tom" http://localhost:8080/sampleapp/hello
Poniższa prośba zamiast nie pracy i parametr name
jest null
:
curl -X POST -H "content-type: application/x-www-form-urlencoded; charset=UTF-8" -d "name=tom" http://localhost:8080/sampleapp/hello
Myślę, że dodatek do typu zawartości łamie mój kod.
EDIT:
Mam otwarty oficjalny bilet tylko w przypadku jest to błąd: https://java.net/jira/browse/JERSEY-1978
Mam otwarty bilet https://java.net/jira/browse/JERSEY-1978 – Mark
Jak mogę użyć filtru do modyfikowania 'Content-Type' nagłówek? – Mark
Ja zmodyfikowałem odpowiedź. Jednak nie została przetestowana. –