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