Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Anfängerfragen zu den Indy-Komponenten (https://www.delphipraxis.net/141469-anfaengerfragen-zu-den-indy-komponenten.html)

p80286 9. Okt 2009 15:12


Anfängerfragen zu den Indy-Komponenten
 
Hallo zusammen,

ich wollte ein wenig mit den Indy-Komponenten spielen und habe gemerkt das mir da völlig der Durchblick fehlt.
Schon bei der grundlegenden Aufgabenstellung, eine HTTP-Verbindung aufzubauen bin ich kläglich gescheitert.
Delphi-Quellcode:
function UrlCheck(sUrl: String; bAllowRedirects: Boolean = false): Integer;
begin
  with TidHTTP.Create(nil) do
  try
    try
      HandleRedirects := bAllowRedirects;
      Head(sUrl);
      Result := Response.ResponseCode;
    finally
      Free;
    end;
  except
      Result := GetLastError;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
  responseStream: TFileStream;
  ausgabe:String;
  urlcheckErg : integer;
begin
  urlcheckerg:=UrlCheck('http://www.spiegel.de', true);
  if urlcheckerg=200  then ShowMessage('!')
    else ShowMessage('?');
  responseStream := TFileStream.Create('c:\temp\test.txt',fmCreate);
  try
    IdHTTP1.get('http://www.spiegel.de');
  except
    on EIdHTTPProtocolException do
      ausgabe:='Fehler!'+#13#10 + IdHTTP1.ResponseText;
    // die anderen Fehler
    on E: Exception do
      ausgabe:='Auch ein Fehler (' + E.ClassName + ')!'+#13#10 + E.Message;
  end;//try
  if (Length(ausgabe)<1) then
    ausgabe:='OK, alles klar'+#13#10 + IdHTTP1.ResponseText;
  ShowMessage(ausgabe);
  responseStream.free;
end;
Ja ich gebe zu, daß ich da in zwei threads gewildert habe, aber um überhaupt einen Ansatz zu haben.....

Mein erstes Problem ist, daß ich nicht wie gewohnt mit F7/F8 schön durch die Anweisungen steppen kann, sondern ab Aufruf von URLCheck ist da nur noch Blindflug.


Als erste Fehlermeldung kommt:
---------------------------
Im Projekt test.exe ist eine Exception der Klasse EIdSocketError mit der Meldung 'Socket Error # 10060
Connection timed out.' aufgetreten.
---------------------------

diese wird auch mit der "richtigen Showmessage(?) quittiert.
Dann kommt

---------------------------
Im Projekt test.exe ist eine Exception der Klasse EConvertError mit der Meldung 'Ungültiges Argument zum Codieren des Datums' aufgetreten.
---------------------------

und dann die Nachricht:

OK alles klar
HTTP1.1/ 200 OK

Nach dieser letzten Nachricht scheint ja eigentlich alles in Ordnung zu sein, aber warum dann der TimeOut in URLCheck?
Ach ja der Proxy-Port und der Name des Proxy-Servers habe ich angegeben, und ich arbeite mit TurboDelphi(prof).

Und wofür es gut sein soll? Ich möchte einen Benutzer einer Datenbank simulieren, der irgendwelche Nummern eingibt und dafür dann bibliographische Daten oder eine Fehlermeldung zurück erhält.

Etwas ähnliches habe ich über Twebbrowser schon realisiert, aber hier komme ich mir vor wie der erste Mensch.

Kennt Ihr Quellen in denen ich die nötigen Basisinformationen bekommen kann? (In den Tuts habe ich nur etwas zu IRC und TCP gefunden)
Und auf der INDY-Seite gab's nur Tips wie man installiert, aber nichts über den richtigen Einsatz (ok ich hab's nicht als solches erkannt)

vielen Dank im Vorraus
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:17 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