AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke REST Umsetzung eines CURL Befehls nach Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

REST Umsetzung eines CURL Befehls nach Delphi

Ein Thema von mischerr · begonnen am 27. Nov 2024 · letzter Beitrag vom 28. Nov 2024
 
Bbommel

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

AW: REST Umsetzung eines CURL Befehls nach Delphi

  Alt 27. Nov 2024, 10:56
Falls das, was gubbe geschrieben hat, nur ein Tippfehler hier im Forum war, hab ich mal in meinem Code gewühlt, weil ich so grob etwas ähnliches schon gebastelt hatte. Bei mir musste ein JSON gefolgt von einem PDF gesendet werden. Ich habe das damals so gelöst (erzeugen der ganzen REST-Objekte passierte außerhalb der hier gezeigten Funktion, hier wird nur der RESTRequest zusammengesetzt, aber sollte für den Kern reichen):

Delphi-Quellcode:
function SendInvoiceAndPDFToCRM (aRestReq: TRESTRequest; aInvoice: TecsDataCustomerInvoice; aExcelWriter: TinvoiceExcelWriter; var oErrorMsg: string): boolean;
begin
  Result:=true;
  aRestReq.Body.Add(TJson.ObjectToJsonObject(aInvoice),ooREST);
  if (aExcelWriter.PDFName<>'') and FileExists(aExcelWriter.PDFName) then
    // wir müssen die Datei hier mit Params.AddItem hinzufügen, sonst können wir sie nicht als pkFILE
    // kennzeichnen und wenn wir das nicht machen, dann rafft Delphi die Sache mit den Multiparts nicht
    // (Bug in REST.Client -> TCustomRESTRequest.ContentType seit Delphi 11.2)
    aRestReq.Params.AddItem('invoiceFile',TFileStream.Create(aExcelWriter.PDFName,fmOpenRead),pkFILE,[poDoNotEncode],ctAPPLICATION_PDF,ooREST);
  aRestReq.Method:=rmPOST;
  aRestReq.Resource:='/updateInvoice';
  try
    aRestReq.Execute;
  except
    on e: Exception do begin
      oErrorMsg:='Fehler beim Senden einer neuen Rechnung. '+e.Message;
      Result:=false;
    end;
  end;
  [...]
end;
So hat es problemlos funktioniert. Wichtig ist dabei sicherlich mein Kommentar. Ich muss allerdings auch sagen, dass ich damals bei meinen Versuchen nicht über "TMultipartFormData" gestolpert bin. Lese ich hier gerade zum ersten Mal, man lernt ja nie aus. Vielleicht wäre das auch in meinem Fall damit irgendwie besser/eleganter gegangen, aber das oben ist jedenfalls eine (für mich) funktionierende Lösung.
  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 12:27 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