Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: REST Umsetzung eines CURL Befehls nach Delphi

  Alt 27. Nov 2024, 15:20
Ich empfehle auch die Bordmittel (RESTRequest.AddFile) zu verwenden. Dabei werden sowohl der ContentType als auch die Boundary entsprechend gesetzt. Eine dementsprechend korrigierte Version deines Codes könnte dann so aussehen:
Delphi-Quellcode:
procedure SendFilesREST(const PdfFile, XmlFile: string);
var RESTClient: TRESTClient;
    RESTRequest: TRESTRequest;
    RESTResponse: TRESTResponse;
begin
  RESTRequest:= TRESTRequest.Create(nil);
  try
    RESTClient:= TRESTClient.Create(RESTRequest);
    RESTResponse:= TRESTResponse.Create(RESTRequest);
    RESTRequest.Client:= RESTClient;
    RESTRequest.Response:= RESTResponse;
    RESTRequest.Method:= rmPost;
    RESTRequest.ConnectTimeout:= -1;
    RESTRequest.ReadTimeout:= -1;
    RESTRequest.Accept := TRESTContentType.ctAPPLICATION_JSON;
    RESTRequest.AddAuthParameter('X-Api-Key', 'My-API-Key', TRESTRequestParameterKind.pkHTTPHEADER);
    RESTClient.BaseURL:= 'https://<provider>/Documents/Outbox';
    RESTRequest.Method:= rmPOST;
    if PdfFile<>'then
      RESTRequest.AddFile('files', PdfFile, TRESTContentType.ctAPPLICATION_PDF);
    if XmlFile<>'then
      RESTRequest.AddFile('files', XmlFile, TRESTContentType.ctTEXT_XML);
    RESTRequest.Execute;
    if RESTResponse.Status.Success then begin
      // ...
    end;
  finally
    RESTRequest.Free;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat