AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke MultipartFormData und TRESTRequest
Thema durchsuchen
Ansicht
Themen-Optionen

MultipartFormData und TRESTRequest

Ein Thema von Rabenrecht · begonnen am 20. Okt 2022 · letzter Beitrag vom 27. Okt 2022
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: MultipartFormData und TRESTRequest

  Alt 27. Okt 2022, 13:44
Das scheint ein Problem mit Delphi 10.2 zu sein. Der verantwortliche Code liegt in in TCustomRESTRequest.DoPrepareRequestBody Zeile 2742
Delphi-Quellcode:
      if LContentType = TRESTContentType.ctMULTIPART_FORM_DATA then
      begin
        // Multipart
        // For multipart names of body parameters are written - in contrast to WWWForm (see below)
        if (LParam.Kind = TRESTRequestParameterKind.pkFile) then
          LMultipartPeerStream.AddFormFile(LParam.Name, LParam.Value, ContentTypeToString(LParam.ContentType))
        else
          LMultipartPeerStream.AddFormField(LParam.Name, LParam.Value);
      end
In Delphi 11 sieht die Sequenz dann so aus
Delphi-Quellcode:
        if SameText(AContentType, TRESTContentType.ctMULTIPART_FORM_DATA) then
        begin
          // Multipart
          // For multipart names of body parameters are written - in contrast to WWWForm (see below)
          if LParam.Stream <> nil then
            LMultipartFormData.AddStream(LParam.Name, LParam.Stream, LParam.Value,
              ContentTypeToString(LParam.ContentType))
          else if LParam.Kind = TRESTRequestParameterKind.pkFile then
            LMultipartFormData.AddFile(LParam.Name, LParam.Value,
              ContentTypeToString(LParam.ContentType))
          else
            LMultipartFormData.AddField(LParam.Name, LParam.Value,
              ContentTypeToString(LParam.ContentType));
        end
Im Gegensatz zu 10.2 wird hier der ContentType des Parameters mit übergeben.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rabenrecht

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

AW: MultipartFormData und TRESTRequest

  Alt 27. Okt 2022, 15:10
Ja, habe das jetzt auch so im Code nachvollzogen.

Danke fürs Nachschauen, Uwe!

So, als Workarround hätte ich nun die Option, den Json-Teil des Bodys als Datei zu speichern und dann mit AddFile hinzufügen...

Ich habe geschaut, ob ich das irgendwie austricksen kann, aber sobald LParam.Kind = TRESTRequestParameterKind.pkFile ist, wird der Wert des Parameters als Dateipfad interpretiert.
Mein "Json als Datei abspeichern" Umweg scheint die einzige Möglichkeit zu sein, die mir in Tokyo bleibt

Mal sehen, ob das klappt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:59 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