Jersey: Verbrauchen Sie alle POST-Daten in einem Objekt

Ich verwende Jersey 1.8 in meiner Anwendung. Ich versuche zu konsumierenPOST Daten auf dem Server. Die Daten sind vom Typapplication/x-www-form-urlencoded. Gibt es eine Methode, um alle Daten in einem Objekt abzurufen?Map<String, Object>.

Ich habe Jersey getroffen@Consumes(MediaType.APPLICATION_FORM_URLENCODED). Aber wenn ich das benutze, müsste ich es benutzen@FormParamDies kann mühsam sein, wenn die Anzahl der Parameter sehr groß ist. Oder vielleicht ist eine Möglichkeit dies:

    @POST
    @Path("/urienodedeample")
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    @Produces(MediaType.APPLICATION_JSON)
    public Response uriEncodedExample(String uriInfo){
        logger.info(uriInfo);
        //process data
        return Response.status(200).build();
    }

Der obige Code verwendet und präsentiert die Formulardaten in aString Objekt.

_search=false&nd=1373722302667&rows=10&page=1&sidx=email&sord=desc

Die Verarbeitung kann fehleranfällig sein& und split () geben beschädigte Daten zurück.

Ich habe UriInfo für die meisten meiner Arbeiten verwendet, bei denen ich die Abfrageparameter in a erhalten habeMultiValuedMap oder für andere POST-Anfragen die Payload einschickenjson Format, das wiederum in ein unmarshalled wäreMap<String, Object>. Irgendwelche Vorschläge, wie ich dasselbe tun kann, wenn die POST-Daten vom Typ sindapplication/x-www-form-urlencoded.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage