JAX - RS.... Multiple parameter application/x-www-form-urlencoded....

beta20

Top Contributor
Hallo,

ich versuche gerade ein Webformular an meinen REST endpoint zu schicken.
Hier möchte ich die ganzen Eingaben des Formulars an meinen Endpoint schicken:

Java:
@POST

    @Path("/submitForm")

    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)

    @Produces(MediaType.APPLICATION_JSON)

    public Response getFormDataUsingMultivaluedMap(@Context HttpServletRequest request,
            @HeaderParam(ConstantsWebservice.X_API_KEY) String formKey,
            MultivaluedMap<String, String> formParams) {
        
    for (String key : formParams.keySet()) {

In Postman habe ich dies eingestellt:
1621015548738.png

Der Endpoint wird aufgerufen. Das Problem ist nun, dass in formParams.keySet() keine Werte drin sind? Somit kommt es zu KEINEM Schleifendurchlauf...

Was mache ich falsch?
 
Hier mein CURL, das ich absetze

Java:
curl --location --request POST 'http://localhost:8080/service/formintegration/submitForm' \
--header 'X-API-KEY: 123456789' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'test=test'
 
Was passiert, wenn Du einen Parameter @FormParam("test") String testParam statt der Map verwendest, kommt der Inhalt von test dort an?
 
Der curl-Aufruf ist falsch. Um Key-Value Paare application/x-www-form-urlencoded abzsenden verwendet man folgende Syntax:
curl -X POST -d 'test1=abc' -d 'test2=xyz' https://example.com/...
oder
curl -X POST -d 'test1=abc&test2=xyz' https://example.com/...

curl --help
-d, --data <data> HTTP POST data
 

Neue Themen


Zurück
Oben