Einzelnen Beitrag anzeigen

Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
655 Beiträge
 
Delphi 12 Athens
 
#47

AW: Delphi 12 ist offiziell da!!!

  Alt 8. Nov 2023, 15:37
Dein Code ist so falsch.
    myQuery.Resource:='get?param=hello world'; Das darfst du nicht so machen. Du gibts hier eine ungültige URL an. Korrekt wäre:
Delphi-Quellcode:
    
    myQuery.Resource:='get?param=' + TNetEncoding.URL.EncodeForm('hello world');
Sollte deine Serveranwendung wirklich fälschlicherweise ein %20 benötigen, kannst du anstatt EncodeForm() einfach nur Encode() nutzen.
Hi Rolf,

berechtigter Hinweis, aber das war nur ein schnell zusammengeschriebener Beispiel-Code, um das mit dem Dienst von httpbin gut demonstrieren zu können. In meinem echten Code bekomme ich das an den Stellen, an denen die Parameter auf die Art gesetzt werden, wohl auch durch die Nutzung von "AddParameter" gefixt, was dann letztlich auch eine bessere Lösung ist.

Was Delphi aber selbst beim Kodieren der Ressource macht, ist ja dennoch falsch, wenn die URI doppelt kodiert wird. Ich wollte mal testen, ob das auch beim Kodieren der eigentlichen Ressource (also nicht eines möglichen Parameters) passiert. Denn prinzipiell könnte es in einer API ja auch eine Ressource "/get/customer/Hans Meier" oder so ähnlich geben. Bin aber heute nicht dazu gekommen, mir das anzuschauen.
  Mit Zitat antworten Zitat