Comment vérifier l'URL avec IdHTTP?
Comment puis-je vérifier l'URL cible spécifique code de réponse 200 (OK sans Indy jeter toutes sortes d'exceptions. ConnectionTimeout,ConnectionClosedGracefully, etc...
Par exemple, si l'URL n'est pas bonne ou de son hôte ne peut pas être trouvé ou ne peut pas être atteint. Indy augmentera tout de même des exceptions, même si j'ai essayé de les ignorer.
Donc ma question est comment ignorer ces exceptions.
source d'informationauteur Santos Oliveira
Vous devez vous connecter pour publier un commentaire.
1. Comment ignorer toutes les exceptions levées par le TIdHTTP ?
Pour gérer toutes les exceptions et, comme vous le dites, ignorervous pouvez utiliser le code qui est presque identique au code de @Stijn réponse:
2. Comment gérer les exceptions spécifiques lancés par le TIdHTTP ?
Peut-être un jour vous aurez envie de réagir d'une certaine manière sur certains types d'exceptions générées par
TIdHTTP
classe, par exemple, ne réagissent que sur le protocole HTTP exceptions. Et c'est ce que je vais essayer ici de s'étendre.Indy définit plusieurs classes d'exceptions pour des occasions différentes, qui peuvent se produire lorsqu'un certain échec de l'action. Voici une liste de classes d'exception, que vous pourriez être intéressé lorsque vous travaillez avec le protocole HTTP:
EIdException
- c'est la base de l'exception de la classe utilisée par Indy de la bibliothèque. Il pourrait être utile pour vous quand vous voulez pour la distinction entre les exceptions soulevées par Indy et toutes les autres exceptions levées par votre application.EIdSocketError
- à partir d'un protocole HTTP abstraction point de vue c'est un faible niveau de classe d'exception, qui couvre toutes les exceptions soulevées lorsqu'une certaine prise opération échoue. Cela peut être utile pour vous de détecter, qu'il ya quelque chose de mal au niveau de votre réseau.EIdConnClosedGracefully
- les exceptions soulevées par cette classe indiquer que le serveur a fermé la connexion avec le client dans un classique. Cela peut être utile lorsque vous avez besoin de réagir à cette situation, par exemple par la reconnexion au serveur.EIdHTTPProtocolException
- cette classe d'exception est utilisé pour les exceptions levées, lorsqu'une erreur se produit lors du traitement d'une réponse HTTP pour une certaine demande. Cela se produit généralement lorsqu'un imprévu numérique code de réponse HTTP est reçu à partir de la réponse HTTP. Il peut être utile, lorsque vous souhaitez gérer HTTP erreurs de protocole particulier. Par ce traitement d'exception, vous pouvez, par exemple, réagir sur certains codes d'état HTTP retourné par une réponse du serveur.Voici le code squelette montrant la manipulation des exceptions énumérées ci-dessus. Bien sûr, vous n'avez pas à afficher les messages, mais faire quelque chose de plus utile. Et, vous n'avez pas besoin de les traiter; c'est sur vous, qui les exceptions et comment vous allez gérer:
Une plaine try/except devrait faire l'affaire: