AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Per indy eine Datei über https versenden.
Thema durchsuchen
Ansicht
Themen-Optionen

Per indy eine Datei über https versenden.

Ein Thema von Kostas · begonnen am 10. Apr 2017 · letzter Beitrag vom 11. Apr 2017
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.060 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Per indy eine Datei über https versenden.

  Alt 10. Apr 2017, 21:00
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.:
MultiPartFormDataStream.AddFile('meine_datei', 'C:\autoexec.bat', ''); Hat jemand eine Idee nach was ich suchen muss wenn die Datei als "HTTP-Payload" übertragen werden soll?

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Per indy eine Datei über https versenden.

  Alt 11. Apr 2017, 07:42
Zitat:
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.
Dann ist das nach meinem Verständnis kein https.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.060 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Per indy eine Datei über https versenden.

  Alt 11. Apr 2017, 08:24
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
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.060 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Per indy eine Datei über https versenden.

  Alt 11. Apr 2017, 09:16
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
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#5

AW: Per indy eine Datei über https versenden.

  Alt 11. Apr 2017, 09:22
Hmm..

mit:

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
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.060 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Per indy eine Datei über https versenden.

  Alt 11. Apr 2017, 11:07
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
  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 16:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz