Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TIdHTTP.get = kein Ergebnis (https://www.delphipraxis.net/93849-tidhttp-get-%3D-kein-ergebnis.html)

Benji87 12. Jun 2007 11:40


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:
.....
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;
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.

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

Van HelF 14. Jun 2007 06:06

Re: TIdHTTP.get = kein Ergebnis
 
Delphi-Quellcode:
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;
try finally nicht vergessen :wink:
Funktioniert bei mir ohne probs, getestet mit indy9 und Delphi 7.

CCRDude 14. Jun 2007 07:15

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 15:29 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