![]() |
TIdHTTP.get = kein Ergebnis
Hallo Leute,
ich versuche einen Messenger zu bauen. Da ich ohne Server arbeiten möchte, brauche ich die IPs der User. Ich habe auf meinem Webserver eine MySQL-Datenbank laufen, in der die Benutzer mit IPs gespeichert werden sollen. Wenn ich nun über die Indy-Kompponenten die IP mit Hilfe des IdHTTP herausfinden will, bleiben die Variablen für die IP leer. Der Quellcode ist folgender:
Delphi-Quellcode:
Starte ich nun mein Projekt im Debugger, werden wie Variablen "ip" sowie "internet_ip" nicht gesetzt. Fehlermeldungen erschedinen keine. Wenn ich allerdings alles bis auf die letzten 2 Zeilen lösche und die Komponente direkt auf das Formular ziehe, bekomme ich beim starten (application.run) einen Fehler "....Parameter Request.ProxyPort existiert nicht......." Der Wert steht in der Komponente auf 0 und ich benutze auch keinen Proxy.
.....
procedure TForm2.SpeedButton1Click(Sender: TObject); var inid: TIniFile; ip: string; internet_ip: string; IdHTTP1: TIdHTTP; const FileName = 'start.wav'; begin ..... IdHTTP1:= TIdHTTP.Create(nil); IdHTTP1.Request.Connection:= 'Keep-Alive'; ip := IdHTTP1.Get('http://checkip.dyndns.org/'); internet_ip:=Copy(ip, Pos('Current IP Address: ', ip)+20, Length(ip)-92); ..... end; Ich benutze z.Zt. Delphi 6 Enterprise mit den Indys in Version 9. Vielleiche kann mir einer von euch sagen, wie ich die Variablen gefrüllt bekomme :mrgreen: Gruß Benji87 |
Re: TIdHTTP.get = kein Ergebnis
Delphi-Quellcode:
try finally nicht vergessen :wink:
function get_ip:string;
var ip: string; internet_ip: string; IdHTTP1: TIdHTTP; begin try IdHTTP1:= TIdHTTP.Create(nil); IdHTTP1.Request.Connection:= 'Keep-Alive'; ip := IdHTTP1.Get('http://checkip.dyndns.org/'); internet_ip:=Copy(ip, Pos('Current IP Address: ', ip)+20, Length(ip)-92); result:=internet_ip; finally IdHTTP1.Free; end; end; Funktioniert bei mir ohne probs, getestet mit indy9 und Delphi 7. |
Re: TIdHTTP.get = kein Ergebnis
Das mit dem Parameter der nicht existiert klingt ein bißchen nach einem Versionsmischmasch. Das mitgelieferte Indy 9 dürfte ja uralt sein, evtl. hast Du ein neueres runtergeladen und beide im Suchpfad? Oder das Package vom alten installiert, aber nur den neuen Suchpfad?
Ansonsten empfehle ich, mal nen Test auf Mem Leaks zu machen (in der Projektdatei am Anfang ein ReportMemoryLeaksOnShutdown := true; ), dann wird Dir Indy 9 schon vergehen ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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