Autor Beitrag
Tony-S
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Di 26.04.11 19:51 
Hallo Forum,

ich bin im Forum leider nicht wirklich fündig geworden,
es geht um folgendes, ich hab hier ein Tool geschrieben,
mit dem ich Bilder auf einen Webservice hochladen kann und per TIdHTTP-Post den Link bekomme.
Dieser Service wurde jetzt auf HTTP(S) umgestellt und ja, nun funktioniert das alles nicht mehr ^_^.

Ja was funktioniert denn nicht mehr, moment hier der Code:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
begin
// Objekte instanzieren
  MultiPartFormDataStream := TMsMultiPartFormDataStream.Create;

  try
      // Content-Type bestimmen
      httpMain.Request.ContentType := MultiPartFormDataStream.RequestContentType;

      // Formular-Felder setzen, die keine Dateien sein sollen
      if frmPickHostSettings.cbAccount.Checked = False then MultiPartFormDataStream.AddFormField('client_key', client_key);
      if frmPickHostSettings.cbAccount.Checked then
      begin
      MultiPartFormDataStream.AddFormField('client_key', client_key);
      MultiPartFormDataStream.AddFormField('user',  frmPickHostSettings.tfUser.Text);
      MultiPartFormDataStream.AddFormField('token', frmPickHostSettings.tfToken.Text);
      end;

      // Datei laden
      MultiPartFormDataStream.AddFile('file', pnPfad.Caption, '');

      // diese Methode muss _vor_ dem Senden augerufen werden
      MultiPartFormDataStream.PrepareStreamForDispatch;
      MultiPartFormDataStream.Position := 0;

      try
        // -->    
        // Anfrage abschicken
        Response := httpMain.Post('https://pickhost.eu/api/upload', MultiPartFormDataStream);
        // <--
      except
       frmPickHostFehler.Show;
       frmPickHostFehler.BringToFront;
       frmPickHostFehler.Label1.Caption :=  AusgabeString;
      end;
  finally
  MultiPartFormDataStream.Free;
  end;
end;


Das einzige was ich bisher geänderte habe ist die URL und zwar von http in https.
Der Fehler den ich bekomme ist:

Exception

Der Abschnitt um den es geht ist der mit den auskommentierten Pfeilen.
Es kann gut sein das vllt ein end fehlt, aber dann nur weil ich für das Forum unnötiges rausgenommen hab.

Gibt es eine andere Komponente oder geht es irgendwie mit dieser einen HTTPS Post auszuführen) Ich wäre euch jedenfalls sehr dankbar für eure Hilfe.

MfG Tony-S

Moderiert von user profile iconNarses: Bild als Anhang hochgeladen.
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 26.04.11 21:07 
Da steht doch schon, dass der IOHandler ungültig ist, du kannst als IOHandler einfach eine TIdSSLIOHandlerSocketOpenSSL Komponente zuweisen. Außerdem benötigst du natürlich die OpenSSL-DLLs. Die können im Verzeichnis der Exe liegen.
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Di 26.04.11 23:28 
Okay danke schon mal. Ich muss schon zugeben das ich mich nicht bis ins Detail mit der Komponente beschäftigt habe,
du hattest mir vor einem Jahr schon einmal damit geholfen, ich hab das in sofern verstanden das ich gewisse Felder füllen muss um eine Abfrage auszuführen und es ging ;).

Was genau ist denn der "IOHandler"?
Die TidHTTP-Komponente hat ja eine Eigenschaft die so heißt, aber wie soll ich dort eine Komponente zuweisen, wo bekomm ich die und die anderen DLLs her.
gibt es denn nicht auch eine (kostenlose) Komponente die nicht externe DLLs benötigt?

Wenn mir das jemand oder vllt du Schritt für Schritt erklären könntest wo ich was wie mache, wäre ich schon echt zufrieden.

MfG Tony-S
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 27.04.11 02:14 
user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
Was genau ist denn der "IOHandler"?
Der regelt einfach gesagt die Kommunikation.

user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
Die TidHTTP-Komponente hat ja eine Eigenschaft die so heißt, aber wie soll ich dort eine Komponente zuweisen, wo bekomm ich die
Naja, die Komponente kannst du einfach aufs Formular legen, die ist bei Indy dabei, dann steht die bei IOHandler zur Auswahl. :zwinker:
Oder du schreibst das in FormCreate:
ausblenden Delphi-Quelltext
1:
  httpMain.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(Self);					
Und die uses:
ausblenden Delphi-Quelltext
1:
2:
uses
  IdSSLOpenSSL;


user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
und die anderen DLLs her.
www.openssl.org/related/binaries.html

user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
gibt es denn nicht auch eine (kostenlose) Komponente die nicht externe DLLs benötigt?
Nicht dass ich wüsste, jedenfalls nicht kostenlos und wenn, dann nicht mit Indy.
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Mi 27.04.11 20:26 
Okay ich bin jetzt nur noch auf der Suche nach den DLLs,
ich dachte die richtigen hier: www.ie7pro.com/openssl.html gefunden zu haben unter deinem Link hab ich nicht so wirklich etwas gefunden.
Die zwei DLLs "libeay32" und "ssleay32" hab ich den Pfad meiner exe, wenn ich das Programm nun starte, bekomme ich die Fehlermeldung "Could not load SSL libary."
Habe ich die falschen DLLs oder muss ich an der "TIdSSLIOHandlerSocketOpenSSL"-Komponente nocht etwas einstellen?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 27.04.11 21:10 
user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
Okay ich bin jetzt nur noch auf der Suche nach den DLLs,
ich dachte die richtigen hier: www.ie7pro.com/openssl.html gefunden zu haben
Das sind alte...

user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
unter deinem Link hab ich nicht so wirklich etwas gefunden.
Auf der ganzen verlinkten Seite gibt es im Inhalt rechts nur einen Link... :gruebel: nämlich dahin, da findest du unten ja die Downloads...
www.slproweb.com/pro...ts/Win32OpenSSL.html
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Mi 27.04.11 22:32 
Also quasi der 1. Link, der Installer ... ?
www.slproweb.com/dow...SSL_Light-1_0_0d.exe <--

Wenn ich das installiert habe, habe ich dem Ordner 3 DLLs, die hab ich in mein Verzeichnis kopiert und nun?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 27.04.11 22:37 
Die Zip-Datei für Entwickler hätte auch gereicht, aber das war es eigentlich schon.

Wenn es nicht geht: Kann es sein, dass du keine aktuelle Indyversion hast? :gruebel:
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Mi 27.04.11 22:45 
Gut möglich, zumindestens is mein Delphi 7 wohl recht alt, die Indy Version demnach wohl auch.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 27.04.11 23:08 
Eine aktuelle Indy 10 gibts hier:
indy.fulgan.com/ZIP/
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Do 28.04.11 18:43 
Irgendwie ärgerts mich hier jede Kleinigkeit fragen zu müssen..

Ich hab den Ordner heruntergeladen, wie und was hab ich da zu installieren?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 28.04.11 20:19 
Gar nichts, einfach nur unter Tools --> Umgebungsoptionen --> Bibliothek die alten Indy-Ordner rauswerfen. Dann fügst du zum Bibliothekspfad (also gleich das erste Feld oben) alle Unterordner des neuen Indy-Ordners hinzu, in denen sich .pas Dateien befinden.

Das wars auch schon. Jetzt kannst du die Komponenten dynamisch erstellen.

Für eine Installation, falls du das unbedingt willst, musst du die Packages installieren, aber frag mich nicht welche, das mache ich eigentlich nie. Viel zu umständlich. ;-)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Do 28.04.11 20:39 
Moin!

user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
Irgendwie ärgerts mich hier jede Kleinigkeit fragen zu müssen..
Du darfst dich natürlich auch gerne selbst darum kümmern. :nixweiss: Falls es dir noch nicht aufgefallen ist: Wir sind hier keine automatische Hilfefunktion, die in deinen Browser eingebaut ist. Wir helfen ehrenamtlich und kostenlos... :roll:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Tony-S Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 184
Erhaltene Danke: 6

Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
BeitragVerfasst: Do 28.04.11 21:25 
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Moin!

user profile iconTony-S hat folgendes geschrieben Zum zitierten Posting springen:
Irgendwie ärgerts mich hier jede Kleinigkeit fragen zu müssen..
Du darfst dich natürlich auch gerne selbst darum kümmern. :nixweiss: Falls es dir noch nicht aufgefallen ist: Wir sind hier keine automatische Hilfefunktion, die in deinen Browser eingebaut ist. Wir helfen ehrenamtlich und kostenlos... :roll:

cu
Narses


Was soll das? Meinst du ich hätte es nicht probiert das Packet zu installieren? Auf der Indy Seite wird es z. B. anders beschrieben als es Jaenicke tat.
Irgendwie unhöflich einen deswegen so anzugeifen...

Ich werd es jetzt versuchen zu installieren - trotzdem danke.