AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi 12 ist offiziell da!!!

Ein Thema von wjjw · begonnen am 7. Nov 2023 · letzter Beitrag vom 29. Nov 2023
 
Bbommel

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

AW: Delphi 12 ist offiziell da!!!

  Alt 7. Nov 2023, 15:45
Danke für die Anregung, das nochmal zu testen. Der Fehler ist jetzt etwas schwieriger nachzuvollziehen als wahrscheinlich im ursprünglichen Bug-Report vom August. Er tritt jetzt nur noch auf, wenn man den Parameter selbst in die URL mit reinschreibt und nicht mehr, wenn man ihn per "AddParameter" setzt. In D11.2 funktionierten allerdings beide Wege völlig fehlerlos und so sollte es auch weiterhin sein. Es gibt ja diverse Gründe, warum es mal vorkommen kann, dass man nicht AddParameter nutzt, sondern die URL selbst zusammensetzt - in REST-APIs könnte es auch eine durch einen Call vorgegebene URL sein, um weitere Ergebnisse abzurufen (macht die Graph API von Microsoft zum Beispiel). Wäre blöd, wenn Delphi da reingrätscht.

Aber klar, so fällt der Fehler weniger auf.

Beispielprogramm:

Delphi-Quellcode:
program restSpace;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, REST.Client;


var
  myRest: TRESTClient;
  myQuery: TRESTRequest;
  resultText: string;

begin
  myRest:=TRESTClient.Create('https://httpbin.org/');
  myQuery:=TRESTRequest.Create(nil);
  myQuery.Client:=myRest;
  try
    { TODO -oUser -cConsole Main : Code hier einfügen }
    myQuery.Resource:='get?param=hello world';
    myQuery.AddParameter('param_added','hello world');
    myQuery.Execute;

    if (myQuery.Response.StatusCode=200) and (myQuery.Response.JSONValue<>nil) then begin
      resultText:=myQuery.Response.JSONValue.GetValue<string>('args.param','!! Not found !!');
      Writeln(resultText);
      resultText:=myQuery.Response.JSONValue.GetValue<string>('args.param_added','!! Not found !!');
      Writeln(resultText);
      Readln;
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  myQuery.Free;
  myRest.Free;
end.
Ausgabe mit D11.2:

Code:
hello world
hello world
Ausgabe mit D12:

Code:
hello%20world
hello world
Tja, wie vorgehen?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz