Einzelnen Beitrag anzeigen

gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: TRestClient UploadFile vs PHP

  Alt 11. Feb 2022, 14:31
Hallo Uwe.
Ja, der Code ist verworren. Wie gesagt, ist quasi ein Bastel-Code, mit dem ich schon ne Menge rumprobiert habe.

Ich habe deinen Code jetzt entsprechend eingebaut, funktioniert leider auch nicht.
Die ersten Zeilen habe ich allerdings ausgetauscht, da der Upload (ähnlich wie hier, auch per TOAuth2Authenticator) funktionieren soll.
Delphi-Quellcode:
  
  {...}
  FRESTClient.BaseURL := 'http://myServer.tld/API.php';
  try
    request := TRESTRequest.Create(FRESTClient); // spart das try-finally-Free
    request.Client := FRESTClient;
    request.Method := rmPOST;
  {...}
Alle Parameter kommen Server-seitig an. Auch der volle Dateiname.
Nur ist das PHP-seitige $_FILES immernoch leer.
request.Response.Status.Success ist TRUE, war aber zu erwarten, wenn ich dem Server-seitigen Entwickler glauben darf.

Ich glaube auf diese Art hatte ich es auch schon probiert.
Damals hatte ich Fiddler mitlaufen lassen, um herauszufinden, was unterschiedlich ist, in dem was Delphi und das Javascript an den Server sendet.
Ich habe die Request-Header vergleichen, die waren nahezu identisch, zumindest in dem was ich für wichtig halte. In den Raw-Daten konnte ich auch meine Datei "sehen".
Die Datei geht also rüber zum Server. Auch beim Debuggen merkt man an der kurzen Verzögerung, dass da richtig was passiert.
Aber der Server scheint die Datei nicht entgegen zu nehmen. ... per JavaScript gehts

OT:
Blöder weise entwickelt sich diese Bastel-Funktion mittler Weile von einem "NiceToHave" zu einem "MustHave".
Ich habe gestern eine Anfrage bekommen, ob ich mittels REST-API XML-Daten austauschen kann.

"Na klar kann ich das ..."
Leider ist aus der Doku nicht erkennbar, ob der Server XML-Daten oder XML-Dateien erwartet. Die Doku spricht von Dateien, zeigt aber nur XML-Daten. Aber das kommt später.
Das ganze läuft dort über eine Basic Authentication, die in meinem Code schon weitestgehend funktioniert und ich deswegen den Upload (und den Download) an meinen vorhanden FRESTClient gebunden haben möchte, sollte das Ganze tatsächlich über XML-Dateien laufen sollen.
  Mit Zitat antworten Zitat