Checker si une adresse web est valide??? [C++] - C++ - Programmation
Marsh Posté le 19-12-2005 à 20:30:12
faire une requête HTTP dessus et regarder ce que le serveur te retourne (si le serveur lui-même est accessible, biensur)
Marsh Posté le 20-12-2005 à 09:50:11
et comment qu'on fait ca? j'ai encore pas trouvé d'info dessus...
thx, ++
Marsh Posté le 20-12-2005 à 11:11:01
ben, ouvertures de socket en mode connecté (TCP), tu construis une requête HTTP valide (cf la RFC) et tu l'envoies. encore en t'appuyant sur la RFC, tu analyses le message (s'il retourne un "200 OK", c'est bon, par exemple )
sinon, il y a des libs pour faire ca, je crois ... cf libcurl, il me semble
Marsh Posté le 20-12-2005 à 11:33:51
euh... pt1 tout ca juste pour savoir si une adresse est OK...
ca me parait bien la merde :S
Marsh Posté le 20-12-2005 à 12:59:28
Oui, c'est nul. Si c'est juste pour vérifier que la syntaxe du nom est correcte, il existe sûrement des libs, sinon, tu te fais une jolie regexp.
Marsh Posté le 20-12-2005 à 13:16:05
... *relis le topic*
ah ouais, tiens, j'avais pas capté que ca se limitait à ça
par "valide", j'avais cru comprendre qu'il voulait qu'un site soit disponible à l'adresse indiquée
si ca se limite à vérifier le format d'une url, been, c'est plus simple ... ca doit être quelque chose du style :
protocole://[login@]host/path
avec une regexp, ca se fait assez vite, oui
(edit typo)
Marsh Posté le 20-12-2005 à 13:30:09
ouais mais justement... si je test simplement le format de l'url, ca passera pas spécialement bien non?
genre l'adresse: www.clubic.com & http://www.clubic.com sont valide tout comme blabla.clubic.com est également valide...
C'est pour ca que je voulais testé si on pouvait accéder à la page et si c le cas ben c bon... mais j'aurais juste besoin de savoir si la page est accessible!
Marsh Posté le 20-12-2005 à 13:52:11
j'essaie de faire ca :
Code :
|
Mais ce con n'arrete pas de me faire l'erreur "ESockError with message 'Host Lookup Failed'".... et j'arrive pas a catcher cette $*?=)£ erreur de *%"+*ç!
Marsh Posté le 20-12-2005 à 14:11:50
dans ce cas, c'est bien ce que je préconisais plus haut ...
tu as regardé libcurl ? parce que ca propose ce genre de services (certes, sans la gestion d'exceptions, vu que la lib est faite pour être utilisée en C avant tout ...) mais bon, embarquer une lib comme ca si c'est juste pour vérifier la "browsabilité" d'une url, c'est sur que ca peut être un peu lourd
Edit : d'où tu sors ce NMHTTP1 ? Tu ne ferais pas du C++ managed, par hasard ?
Marsh Posté le 20-12-2005 à 14:16:47
le NMHTTP1 vient de borland... c'est un TNMHTTP
il a ca comme méthodes:
Code :
|
... mais j'arrive pas a trouver comment éviter l'erreur! (dans Borland le OnError n'est pas disponible... je sias pas pkoi!)
Marsh Posté le 20-12-2005 à 14:40:41
dans ce cas, ouais, tu ne devrais pas avoir besoin d'autre chose, cependant, je n'utilise pas Borland, donc je ne pourrai pas trop d'aider là-dessus (cependant, les OnInvalidHost et OnFailure semblent être dédiés à te fournir le genre de service que tu recherches, non ?)
Marsh Posté le 20-12-2005 à 14:55:38
Sous Windows, y'a la fonction UrlIs qui peut peut être te convenir:
http://msdn.microsoft.com/library/ [...] /urlis.asp
Marsh Posté le 20-12-2005 à 15:35:09
theshockwave a écrit : |
ben oui... mais c justement dans ces 2 méthodes que j'ai mis mon try, catch et ca fonctionne pas.
Marsh Posté le 19-12-2005 à 20:03:55
yop yop!
y'a pas moyen de savoir facilement si une adresse web est valide??
merci pour votre réponse.
@++