Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: MultipartFormData und TRESTRequest

  Alt 27. Okt 2022, 14: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