AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

idhttp1.Get Error

Ein Thema von Cheffu · begonnen am 24. Jun 2007 · letzter Beitrag vom 25. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
Cheffu

Registriert seit: 7. Nov 2006
42 Beiträge
 
#1

idhttp1.Get Error

  Alt 24. Jun 2007, 17:25
Hallo

wenn ich mit idhttp1.Get('http://www.cheffu.de/dasd.php') den Inhalt der Seite abfrage gibts dieses nicht,deshalb kommt der Error EIdHTTPProtocolExeption.

Kann mir jemand sagen wie ich die Error-Meldung abfange oder einen anderen Weg für folgendes Problem:
Es soll überprüfen ob es die Seite gibt, wenn ja, dann Label1.Caption:=ja;
un wenn nicht Label1.Caption:=nein;

oder etwas in der Art. Also würds siche eine if Abfrage vll eignen, aber die Fehlermeldung Zerstört dies.

mit freundlichen Grüßen
Cheffu
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: idhttp1.Get Error

  Alt 24. Jun 2007, 17:28
Wie wär es mit try-except?
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: idhttp1.Get Error

  Alt 24. Jun 2007, 17:29
Hallo,

im Thread url existiert? findest du bestimmt ein paar Anregungen.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: idhttp1.Get Error

  Alt 24. Jun 2007, 17:31
Oder in denen (die Suche hilft oft weiter):

Überprüfen, ob Seite vorhanden ist mit Indy
Prüfen ob Datei auf Server vorhanden
  Mit Zitat antworten Zitat
Cheffu

Registriert seit: 7. Nov 2006
42 Beiträge
 
#5

Re: idhttp1.Get Error

  Alt 24. Jun 2007, 17:50
@inherited: mit exept und so geht es nicht so leicht

danke erstmal an all die anderen. Ok, ich hätte erstmal suchen sollen, aber leider versteht ich keine der dort geposteteten Codes
Scheinbar soll die gut funktionieren:
Delphi-Quellcode:
// uses WinInet, idHTTP;

function UrlExists(sUrl: String; bAllowRedirects: Boolean = false): Boolean;
begin
  with TidHTTP.Create(nil) do
  try
    HandleRedirects := bAllowRedirects;
    Head(sUrl);
    Result := Response.ResponseCode = HTTP_STATUS_OK;
  finally
    Free;
  end;
end;
aber wie bau ich dies ein, dass es passiert wenn ich auf einen Button klicke?
Was muss ich davon verwenden um auszuwerten ob es den Link nun gibt oder nicht?

Sorry, habe gradmal in der Schule das allerbilligste Delphi gelernt
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: idhttp1.Get Error

  Alt 24. Jun 2007, 17:54
Vielleicht so?

Delphi-Quellcode:
if UrlExists('deine URL') then
  label1.caption:='URL existiert'
else
  label1.caption:='URL nicht erreichbar';
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Cheffu

Registriert seit: 7. Nov 2006
42 Beiträge
 
#7

Re: idhttp1.Get Error

  Alt 24. Jun 2007, 22:04
so einen Befehl gibts denkmal garnicht, zumidnest kann mein Delphi damit nichst anfangen.

Weis keiner wie ich den anderen Code entsprechend umbau?


Ich habe mir das Thread nochmal genau angeschaut wo dieser Code herstammt und dort konnte keiner eine funktionierende Lösung bieten


Edit:
auch der Code im anderen Thread
Delphi-Quellcode:
uses
  ...., IdHTTP;

....

function HTTPFileExists(aURL: String): Boolean;
begin
  with TIdHTTP.Create(nil) do
  try
    try
      Head(aURL);
      Result := ResponseCode = 200;
    except
      Result := False;
    end;
  finally
    Free;
  end;
end;
bringt beim einbau die fehlermeldung die ich am Anfang beschrieben habe. Ist also auch nicht zu gebrauchen.
  Mit Zitat antworten Zitat
Cheffu

Registriert seit: 7. Nov 2006
42 Beiträge
 
#8

Re: idhttp1.Get Error

  Alt 24. Jun 2007, 23:21
Ich weis das dies ein Doppelpost ist, aber es geht diesmal um die teilweise Auflösung des Problems.
In dem Post darüber steh ja nur, dass alles varianten nicht funktioniert haben.

Eine sehr leihcte und funktionierende Lösung ist dies:
Delphi-Quellcode:
begin
  try
    IdHTTP1.Get('http://www.cheffu.de/test2.php');
  except
    on EIdHTTPProtocolException do Memo1.Text:='Fehler!'+#13#10 + IdHTTP1.ResponseText


  end;//try
end;
Meine frage dazu ist aber:
wieso wird bei dem folgenden Code die else Zeile niemals ausgeführt? Diese müsste ja ausgeführt werden wenn es die Seite gibt:
Delphi-Quellcode:
begin
  try
    IdHTTP1.Get('http://www.cheffu.de/tasdadasd.html');
  except
    on EIdHTTPProtocolException do Memo1.Text:='Fehler!'+#13#10 + IdHTTP1.ResponseText
  else
    emo1.Text:='geht'

  end;//try
end;
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: idhttp1.Get Error

  Alt 25. Jun 2007, 05:55
Das liegt daran, da die Syntax nicht stimmt und der Compiler es daher gar nicht kompilieren würde. Es müsste so heißen:

Delphi-Quellcode:
try
  IdHTTP1.Get('http://www.cheffu.de/tasdadasd.html');
  Memo1.Text := 'geht'
except
  on EIdHTTPProtocolException do
    Memo1.Text := 'Fehler!' + #13#10 + IdHTTP1.ResponseText;
end;
Der Aufbau von try - except ist also folgender:

Delphi-Quellcode:
try
  <Anweisungen> // die Fehler hervorrufen könnten
except
  <Anweisungen> // die im Falle eines auftretenden Fehlers ausgeführt werden sollen
end;
Es gibt hier also kein else oder ähnliches.
  Mit Zitat antworten Zitat
Cheffu

Registriert seit: 7. Nov 2006
42 Beiträge
 
#10

Re: idhttp1.Get Error

  Alt 25. Jun 2007, 13:01
Achso ok.

Habe beim stöbern duch diverse codes den else Befehl beim try gesehen, deshalb nahm ich an, dass es diesen gibt, aber so geht es ja auch, also vielen Dank

Zu dem Code, den ich gepostet habe. Komischerweise bringt er immernoch die Fehlermeldung die ich ganz am Anfang erwähnt habe, aber nur wenn man es in Delphi direkt probiert. Wenn man einfach die fertige exe benutzt geht es.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 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