Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Eine Webseite laden mit Indy (https://www.delphipraxis.net/146295-eine-webseite-laden-mit-indy.html)

BenNation 17. Jan 2010 17:26

Re: Eine Webseite laden mit Indy
 
Ich sehe da nur die Frage von Klaus01 und antworte: Gut möglich, hab ich noch nicht getestet. Aber Google.de wirft eine Exception, ausserdem kriege ich auch bei 301-Seiten einen Hinweis. Nur keine Ahnung, wie ich die einfach ignorieren kann...


Danke, StringOfChar war genau, was ich suchte.

Irgendwie fehlt mir eine Seite wie SelfPHP mit einer guten Referenz, nur eben für Delphi...

himitsu 17. Jan 2010 18:01

Re: Eine Webseite laden mit Indy
 
Zitat:

Zitat von himitsu
Zitat:

wirft mir Delphi eine Exception ...
Bei welchem Befehl?

Zitat:

Zitat von himitsu
Und in welcher Delphi-Version?


Zitat:

Irgendwie fehlt mir eine Seite wie SelfPHP mit einer guten Referenz, nur eben für Delphi...
http://www.delphipraxis.net/search.php
http://www.delphipraxis.net/code_library.html
http://ref.dp200x.de
http://docs.embarcadero.com/products.../contents.html
dieses gibt es auch lokal als Online Hilfe (OH) über F1
PS: die Autovervollständigung ist auch ganz praktisch ... man gebe einen Namespace an, dahinter ein Punkt und schon sieht man, was es dort gibt.


http://www.delphipraxis.net/dpX_weblinks.php

BenNation 18. Jan 2010 09:16

Re: Eine Webseite laden mit Indy
 
Zitat:

Zitat von himitsu
wirft mir Delphi eine Exception ...
Bei welchem Befehl?

msData.Seek(0, soFromBeginning);

Zitat:

Zitat von himitsu
Und in welcher Delphi-Version?

Hab ich schon geschrieben. Delphi 2007.


Wie könnte ich zum Beispiel eine HTTP 301 (ich glaube, Moved Permanently) abfangen?

BenNation 19. Jan 2010 11:46

Re: Eine Webseite laden mit Indy
 
Meine Function sieht jetzt so aus:

Delphi-Quellcode:
function TSDIAppForm.ReadSite(URI: string): String;
var
  idClient: TIdHTTP;
  msData: TMemoryStream;
  ResultString: String;

begin
    idClient := TIdHTTP.Create(Application);
    msData := TMemoryStream.Create;
    try
      idClient.Get(URI, msData);
      msData.Seek(0, soFromBeginning);
      ResultString := StreamToString(msData);
    except
      on E:Exception do begin
        E.Message := 'Meldung: '+E.Message;
      Raise;  // Erneut auslösen !
      end;
   end;
      idClient.Free;
      msData.Free;

   result := ResultString;
end;
Die Exception wird gemeldet, was okay ist, aber diese Funktion soll mehrmals aufgerufen werden. Leider stoppt das Programm nach einer Exception (zB 301-Moved Permanently).
Wenn ich die Zeile mit dem "Raise" weglasse, macht das Programm eine Weile lang weiter, stürzt aber dann ab.

Bin ich der einzige, der mit nicht erreichbaren Seiten Probleme hat? Das kann doch fast nicht sein.
Kann man den TIdHTTP nicht so konfigurieren, dass er Seiten, die es nicht mehr gibt o.ä. einfach ignoriert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr.
Seite 2 von 2     12   

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