![]() |
Per indy eine Datei über https versenden.
Hallo Zusammen,
ich habe die Anforderung eine Zip-Datei per HTTPS zu versenden. Aus der Doku des Servers API ist folgendes zu entnehmen: -HTTP Basic Authentification für Username und Passwort -Die Upload-Datei muss als HTTP-Payload und in Binärformat gesendet werden, Multipart und Encoding werden nicht unterstützt. Alle Beispiele die ich zu Indy finde binden die zu sendende Datei als Multipart wie z.B.:
Delphi-Quellcode:
Hat jemand eine Idee nach was ich suchen muss wenn die Datei als "HTTP-Payload" übertragen werden soll?
MultiPartFormDataStream.AddFile('meine_datei', 'C:\autoexec.bat', '');
Gruß Kostas |
AW: Per indy eine Datei über https versenden.
Zitat:
Sherlock |
AW: Per indy eine Datei über https versenden.
Hallo Sherlock,
Sorry, ich habe die URL nicht angegeben. Wegen der URL haben ich angenommen, es muss https sein: https://services.Irgendwas.de/upload-api/upload/{file-name} Gruß Kostas |
AW: Per indy eine Datei über https versenden.
Hallo Zusammen,
es geht viel einfacher als ich dachte. Ich habe es einfach mal probiert den Dateinamen zu übergeben. Genau das ist die Lösung. Die Datei wurde einwandfrei übertragen und bestätigt.
Delphi-Quellcode:
function TForm3.SendFileViaHTTPS(aFile:String):String;
var aResponceStream: TMemoryStream; aFileName:string; begin aFileName := ExtractFileName(aFile); IdHTTP1.Request.BasicAuthentication := True; IdHTTP1.Request.Username := 'Username'; IdHTTP1.Request.Password := 'Password'; aResponceStream := TMemoryStream.Create(); aResponceStream.Clear; aResponceStream.Seek(0,soFromBeginning); try try IdHTTP1.Post(Format('https://services.irgendwas.de/upload-api/upload/%s',[aFileName]), aFile, aResponceStream); aResponceStream.Seek(0,soFromBeginning); Memo1.Lines.LoadFromStream(aResponceStream); Memo1.Lines.Add(IdHTTP1.ResponseCode.ToString); except on E: EIdHTTPProtocolException do begin aResponceStream.Seek(0,soFromBeginning); Memo1.Lines.LoadFromStream(aResponceStream); Memo1.Lines.Add(IdHTTP1.ResponseCode.ToString); end; end; finally aResponceStream.Free; end; end; Schöne Grüße Kostas |
AW: Per indy eine Datei über https versenden.
Hmm..
mit:
Delphi-Quellcode:
IdHTTP1.Post(AURL, ASourceFile)
Kann mit IdHTTP doch direkt ein File versendet werden, ohne die Verwendung von Multipart. Oder habe ich mich da verlesen ;) EDIT: Mist zu langsam ;) |
AW: Per indy eine Datei über https versenden.
Ja, genau das habe ich gemacht.
Der zweite Parameter aFile ist der Absolute Pfad der Zip-Datei 50MB die ich übertrage. Das funktioniert einwandfrei. Die Datei kann am Server entpackt werden. Sie ist also nicht defekt. Gruß Kostas |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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