Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#6

AW: REST Problem (Alles geht nur Delphi nicht)

  Alt 10. Jan 2022, 18:28
Ohne weitere Recherche der Vorgaben und ohne Testmöglichkeit hätte ich jetzt diesen Ansatz gewählt:
Delphi-Quellcode:
  RESTClient1.BaseURL := 'https://api.pay1.de';
  RESTRequest1.Resource := 'post-gateway';
  RESTRequest1.Method := rmPOST;

  RESTRequest1.AddParameter( 'mid', '88888');
  RESTRequest1.AddParameter( 'portalid', '88888');
  RESTRequest1.AddParameter( 'key', '0123456789abcdef0123456789abcdef');
  RESTRequest1.AddParameter( 'api_version', '3.11');
  RESTRequest1.AddParameter( 'mode', 'live');
  RESTRequest1.AddParameter( 'request', 'getuser');
  RESTRequest1.AddParameter( 'encoding', 'UTF-8');
  RESTRequest1.AddParameter( 'aid', '88888');
  RESTRequest1.AddParameter( 'type', 'userdata');
  RESTRequest1.AddParameter( 'customerid', '88888');

  RESTRequest1.Execute;
Natürlich klappt das mit den obigen Daten erstmal nicht. Daher kann ich es auch nicht testen.

Das TRESTRequest.Execute überschreibt einige Parameter des Clients. Daher müssen diese Werte beim Request angegeben werden: Accept, HandleRedirects, AllowCookies, AcceptCharset, AcceptEncoding, ConnectTimeout, ReadTimeout

Der Default für den dritten und vierten Parameter bei AddParameter ist eh schon pkGETorPOST und []. Daher kann man die weglassen.

Der ContentType wird ebenfalls beim Execute intern anhand der übergebenen Parameter ermittelt. Bei rmPOST und pkGETorPOST wird schon der ContentType ctAPPLICATION_X_WWW_FORM_URLENCODED verwendet. Man braucht das also nicht mehr setzen (abgesehen davon, dass man das zumindest in 10.4.2 gar nicht kann).
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat