Einzelnen Beitrag anzeigen

Rabenrecht

Registriert seit: 9. Dez 2016
79 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

MultipartFormData und TRESTRequest

  Alt 20. Okt 2022, 11:45
So, bin nach langer Zeit (3 Jahre+) mal wieder an einer ernsthaften Entwicklung in Delphi dran: eine Schnittstelle (extern), die bislang über Soap angesprochen wurde, hat den Support für Soap nun endgültig aufgekündigt. Ab jetzt ist die Rest-Api zu verwenden.

Es muss also ein Rest-Api-Client her. Soweit so gut.

Die Rest-Api erwartet an einer Stelle ein multipart-formdata body. Die einzelnen Parts können wiederum die verschiedensten Content Types sein. Ein application/json ist immer dabei und dann diverse Dateien, also application/pdf, image/png, text/plain, whatever.


Und genau da stehe ich auf dem Schlauch, wie ich das in Delphi hinbekomme.

Ich nutze die unter REST.Client bereit gestellten Klassen, dh. TRESTClient, TRESTRequest und TRESTResponse.

Hier komme ich für einen Multipart-Body aber nicht wirklich weiter.
Zwar lässt sich mit FRestRequest.AddParameter('myName', 'myValue', TRESTRequestParameterKind.pkREQUESTBODY) ein Multipart-Body erzeugen, der jeweilige content type lässt sich so aber nicht festlegen. Der content type ist aber ziemlich wichtig

Nach etwas Recherche bin ich auf System.Net.Mime.TMultipartFormData gestoßen. Die Klasse bietet ziemlich sinnvoll aussehende Methoden. Zb. TMultipartFormData.AddFile, wo ich einfach nur den Datei-Pfad angeben brauche und sich damit vielleicht auch meine nächste Frage, wie ich denn in Delphi aus einer Datei den passenden Octet-Stream erzeuge, erübrigt

Nur sehe ich gar nicht, wie TMultipartFormData mit den REST.Client Klassen zusammenspielt.


Da dachte ich mir, vielleicht haben ja die Delphi-Experten den ein oder anderen Tipp für mich

Derzeit ist Delphi 10.2 im Einsatz.
  Mit Zitat antworten Zitat