Einzelnen Beitrag anzeigen

Rolf Frei

Registriert seit: 19. Jun 2006
650 Beiträge
 
Delphi 11 Alexandria
 
#45

AW: Delphi 12 ist offiziell da!!!

  Alt 8. Nov 2023, 15:08
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');

Geändert von Rolf Frei ( 8. Nov 2023 um 15:28 Uhr)
  Mit Zitat antworten Zitat