Ich habe einen Jax-Rs-Dienst, der eine Reihe von Parametern im Pfad, pathparameters erhält. Diese Parameter können Strings Werte nicht geeignet für Urls enthalten, so dass sie auf der Client-Seite Urlencoded die java.net.UrlEncoder mit etwa so:Jax-rs automatische Dekodierung Pfadparam
String param = URLEncoder.encode(o.toString(), "UTF-8");
Hier wird die URL supplier/group/param1/param2/param3
zu bauen. Wenn einer von diesen aufgrund der Urlencodierung geändert wird, beispielsweise wenn es nur ein Leerzeichen ist, ist die auf dem Dienst empfangene Zeichenfolge ein +
-Zeichen.
Ich würde erwarten, Jaxrs automatisch codierte Pfadparameter dekodieren.
EDIT: Testen ein bisschen mehr Ich entdeckte, dass beim Senden mit für den Raum ist es in der Lage, den Parameter zu dekodieren.
Die Verwendung von 'URI.toAsciiString' funktioniert nicht immer. Die Antwort von @ yegor256 ist robuster - füge die '@ Encoded'-Annotation über der Funktion decaration – SomethingSomething