Kurzer Test. REST-
API schon wieder kaputt ausgeliefert. Ist ja toll, was ein Schrott.
Leerzeichen und andere Sonderzeichen in Parametern werden falsch kodiert. Aus
Code:
https://test.de?param=my space
sollte werden
Code:
https://test.de?param=my%20space
Delphi macht aber
Code:
https://test.de?param=my%2520space
daraus.
Das heißt, das Ding wird doppelt kodiert und somit das Prozentzeichen auch. Dabei fällt jeder
API-Call auf die Nase, der irgendwas mit Zeichen im Aufruf hat, die nicht im Alphabet oder Nummern sind. Dürfte für ein bisschen Spaß sorgen.
Das ist aufgrund des Fixes für meinen Report RSP-38522 passiert. Da haben sie wohl nicht begriffen wie das richtig gefixt werden muss. Und übrigens werden Spaces in
Query Parametern mit + codiert und nicht mit %20. %20 gilt nur für die
URL ohne
Query-Part.
Beispiel: www[dot]test[dot]
com/meine%20website/app?
query=mein+parameter
Du musst die Parameter separat von der
URL codieren! Das ist also womöglich auch noch ein Fehler in deinem Code. Wie kommst du zu deiner anfänglichen
URL mit dem Space? Wenn du selber eine
URl zusammen baust, musst du die Parameter mit TNetEncoding.URL.EncodeForm('my space') codieren:
url := TNetEncoding.URL.Encode('https://test.de/meine website') + '?param=' + TNetEncoding.URL.EncodeForm('my space');