Entwickler-Ecke

Internet / Netzwerk - Indy-HTTP, Socket-Error


Shadowdragon - Do 06.03.03 15:06
Titel: Indy-HTTP, Socket-Error
Hallo!

Folgendes:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
begin
        idhttp1.Connect;
        status.Text := 'Online!' ;
        memo1.lines.add ('')  ;
        memo1.Lines.add ('- Cold Fusion HTTP -')    ;
        memo1.Lines.Add ('')   ;
        memo1.Lines.add ('') ;
        DeleteFile(ziel);
        content := idhttp1.get ('http://www.hertztod.de/cfc-content.txt')  ;
        status.text := 'Downloaden....;
        idhttp1.Disconnect;
end;


Dann bekomme ich die Meldung:
Socket Error #11001

Hängt das vom Server ab, oder ist da ein Fehler im Code?

Danke!


MSCH - Do 06.03.03 18:22
Titel: re
Hi,
ich kenn nur die Fastnet-Kompos, allerdings kann man da nicht nach einem Connect() gleich ein Get() aufrufen, sondern muß das in den OnConnected() Methode verlagern. Wahrscheinlich weil das ganze ja irgentwie asychrone Threads sind.
Versuchs mal damit.
mfg
MSCH


Shadowdragon - Do 06.03.03 18:25

Gibt aber leider keine "OnConnected" - Methode...


MSCH - Do 06.03.03 18:34
Titel: sodele
hab grad mal die indies installiert. Also die Komponente TidHTTP, um die es ja wohl geht, hat sehr wohl ein Ereignis OnConnected().
***Grübel****
MSCH


Ex0rzist - Do 06.03.03 19:22

Der Socket Error Code 11001 bedeutet, dass der Host unbekannt ist. Ich würde dort mal nachschauen. :wink:


M4EiB - Do 06.03.03 19:58

schon mal ohne

Quelltext
1:
2:
3:
idhttp1.Connect; 
....
idhttp1.Disconnect;

probiert?


Shadowdragon - Do 06.03.03 21:16

Danke M4, jetzt verbindet er auch.....aber ich bekomme jetzt die Meldung "Moved permanently"... die Datei is aber noch da!

...und wie kann ich die jetzt auf meine Festplatte speichern?


M4EiB - Fr 07.03.03 04:48

Zitat:
301 Moved Permanently
bedeutet, dass das Dokument unter einer neuen URL zu erreichen ist.
Diese steht im Header und mit

Quelltext
1:
idhttp1.Response.Location;                    

kannst du sie auslesen.
Die Indy-Komponente kann das auch automaitsch erledigen, dazu musst du

Quelltext
1:
 idhttp1.HandleRedirects := true;                    

einstellen.
Und mit

Quelltext
1:
 idhttp1.RedirectMaximum                    

kannst du noch die maximale Anzahl der Weiterleitungen einstellen.