Entwickler-Ecke
Internet / Netzwerk - Probleme mit Indy10 IdHTTP und SSL
jonas_hirner - So 05.03.06 16:50
Titel: Probleme mit Indy10 IdHTTP und SSL
Hallo,
Nachdem ich hier im Forum immer nur fleissig gelesen habe,
muss ich jetzt selber mal Vorschläge zur Problemlösung einholen :) .
Über die Suchfunktion habe ich leider nichts gefunden was geholfen hat.
Ich versuche mit der IdHTTP Komponente (Indy 10 von Delphi2006Pro) per
POST und GET mit einem HTTPS, also SSL Server zu kommunizieren.
Dazu habe ich die OpenSSL Librarys und ein Zertifikat in mein Programmverzeichnis kopiert, eine IdHTTP Komponente und eine IdSSLIOHandlerSocketOpenSSL Komponente
auf der Form platziert und einige Einstellungen verändert:
IdHTTP:
- IOHandler= IdSSLIOHandlerSocketOpenSSL
- HandleRedirects= True
IdSSLIOHandlerSocketOpenSSL:
- CertFile= SSLCert.cer
- Method= sslvSSLv23
- Mode= sslmClient
- VerifyDepth= 2
Wenn ich jetzt mit GET oder POST den HTTPS Server kontaktiere erhalte ich jedes mal
einen "Read Timeout." Fehler.
Der Server den ich benutzt habe ist
https://login.web.de/ (für eine automatische
Anmeldung)
Beispiel:
Quelltext
1: 2: 3: 4: 5:
| HTTPParam:= TStringStream.Create(''); HTTPParam.WriteString('username=name'); HTTPParam.WriteString('&password=passwort');
FormMain.IdHTTP.Post('http://login.web.de/intern/login/?', HTTPParam); |
Ich hoffe ihr könnt mir weiterhelfen rauszufinden was die Ursache für diese Fehlermeldung ist.
Grüsse aus München
jonas
GTA-Place - So 05.03.06 19:14
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var Params: TIdMultiPartFormDataStream; begin Params := TIdMultiPartFormDataStream.Create;
Params.AddFormField('a', 'Foo'); Params.AddFormField('b', 'Bla'); Params.AddFormField('c', 'Blup');
idHTTP1.Post('http://www.123.de/myscript.php', Params);
Params.Free; end; |
Versuchs mal so (
uses IdMultiPartFormData).
jonas_hirner - So 05.03.06 20:34
Macht keinen Unterschied. Genau der gleiche Fehler "Read Timeout".
Wenn ich mein Programm an einem normalen HTTP Server ohne SSL ausprobiere
funktioniert auch alles ohne probleme.
jonas_hirner - So 05.03.06 20:45
thx für den link, auf der seite war ich zwischendurch auch mal.
Die ist aber noch für Indy 9, die beschriebenen komponenten gibt
es in v10 leider nicht mehr. :(
GTA-Place - So 05.03.06 20:49
Hab grad folgendes gefunden:
Zitat: |
SSL Core
The SSL capabilities of Indy 10 are now completely pluggable. Prior to Indy 10, the SSL support was pluggable at the TCP level, however protocols such as HTTP which used SSL for HTTPS were fixed to use Indy's default SSL implementation of OpenSSL.
Indy 10 continues to include support for OpenSSL, however the SSL capabilities of Indy are completely pluggable at the core and protocol level for other implementations.
SSL and other encryption methods are in the works from both the third parties SecureBlackbox and StreamSec.
SSL Protocols
Indy 10 now supports both implicit TLS and explicit TLS in the following clients and servers:
· POP3
· SMTP
· FTP
· NNTP
· IMAP4 |
Weiß nicht, ob das was hilft.
Wieso willst du dich denn einloggen auf Web.de?
jonas_hirner - So 05.03.06 20:57
web. de war nur ein beispiel. Der Fehler kommt bei jedem SSL gesicherten server.
Ich habe gerade gesehen dass ich wohl nicht der einzige mit diesem Problem bin:
http://www.delphi-forum.de/viewtopic.php?t=50430&start=4
Vielleicht ein Bug in Delphi2006Pro?
MAlsleben - Di 07.03.06 23:40
Hi,
im Entwicklermagazin 01/06 war eine Demo von Daniel Wischnewski für Indy mit SSL dabei. Die hat zumindest funktioniert.
Auf jeden Fall kann diese Zeile von Dir:
Delphi-Quelltext
1:
| FormMain.IdHTTP.Post('http://login.web.de/intern/login/?', HTTPParam); |
nicht funktionieren, es muß
Delphi-Quelltext
1:
| FormMain.IdHTTP.Post('https://login.web.de/intern/login/?', HTTPParam); |
heissen.
Gruß Micha
Moderiert von
Christian S.: Delphi-Tags hinzugefügt, Highlight-Tag gesetzt
jonas_hirner - Mi 08.03.06 10:22
Danke für den Tip, macht leider auch keinen Unterschied. Genau der gleiche Fehler.
GET oder ein anderer Server funtionieren übrigens genausowenig.
Bsp.:
Delphi-Quelltext
1:
| IdHTTP.GET('https://king.com/'); |
gibt auch einen Read Timeout.
könntest du vielleicht die EInstellungen von IdHTTP und dem IOHandler schreiben
die in der Demo verwendet wurden?
Grüsse
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
jonas_hirner - Mi 08.03.06 21:32
Hi,
danke für den Link. Wenn ich die vorkompilierte exe von der
Demo ausführe funktioniert alles problemlos, aber wenn ich das
ganze selber kompiliere bekomme ich wieder den "Read Timeout" Fehler.
Wird wohl doch ein Bug von Delphi sein oder evtl. der Indy Komponente.
Steht im Entwicklermagazin mit was für eine Delphi Version/ Indy Version
verwendet wurde?
Grüsse
MAlsleben - Mi 15.03.06 22:55
Hi,
mit Delphi 2005.
Gruß Micha.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!