# RESTful Webservice mit json



## malt1981 (22. Okt 2019)

Hallo zusammen,
habe gerade ein Problem, bei dem mich google nicht weiterbringt. Es geht um einen Restful Webservice, den ich programmiert habe.
Der Service soll mit nur einem "Argument" aufgerufen werden, das ist ein json. Ich übergebe das json einfach als String. Ich hoffe das ist so richtig.
Der Service funktioniert soweit auch gut. Ich spreche diesen von per Javascript an. Leider aber nur, solange das json keine array enthält.
Somit funktioniert dieser String:

```
{"firma":"xxx","name":"","ort":"","plz":"","suche":"","str":"","ae":"","rabatt":"","auftragArt":"mail","auftragAdresse":"","duArt":"mail","duAdresse":""}
```

dieser hier liefert aber einen 404 response:

```
{"firma":"xxx","name":"","ort":"","plz":"","suche":"","str":"","ae":"","rabatt":"","auftragArt":"mail","auftragAdresse":"","duArt":"mail","duAdresse":"","tage":["mi"]}
```

Die Annotation im Webservice:

```
@GET
    @Produces(MediaType.TEXT_PLAIN)
    @Path("firma/{text}")
    public String getOrderOk (@PathParam("text") String text) {
     ........
    }
```

Ich denke somit, es liegt an den eckigen Klammern im Aufruf.
Hat jemand einen Tipp, wie ich das Problem lösen könnte? Auf die array kann ich schlecht verzichten :-(

Wäre für Hilfe sehr dankbar.

vg


----------



## httpdigest (22. Okt 2019)

Einen Pfadparameter hierfür zu verwenden, ist.... schlecht. Wenn du JSON Payload übertragen musst, dann nutze dafür lieber eine HTTP Methode mit einem Body, wie etwa POST oder PUT (je nachdem, was nach REST für dich da Sinn macht) oder URL-encodiere das JSON.


----------



## malt1981 (22. Okt 2019)

httpdigest hat gesagt.:


> URL-encodiere das JSON.



Danke für die schnelle Antwort. Das funktioniert schon mal - als Quick & dirty Lösung.
Langfristig werde ich die anderen Lösungsansätze probieren, da wohl sauberer.

Viele Dank und noch einen schönen Abend


----------

