IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

test si une Url est valide ?


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Par défaut test si une Url est valide ?
    Bonjour je suis en train de développer une petite application en C sous windows, et dedant je teste si il y a un serveur présent sur le réseau (j'ai l'adresse réseau du serveur).
    La méthode que j'ai trouvé est de tester si l'URL grace à laquelle on accède au serveur (du type http://168.123.0.1/index.php) était valide, pour ensuite soit se connecté au serveur (puisqu'il est là autant en profité :p) soit envoyé un message comme quoi le serveur n'est pas disponible....

    J'ai vu qu'il y avait une méthode qui permettait de tester la validité d'une URL: IsValidURL, qui appartient à la librairie urlmon...
    Or mon compilateur est DevCpp, et il ne connait pas la librairie urlmon (et comme ses librairies ne sont pas en .lib, il n'aime pas que je lui passe le fichier urlmon.lib que j'ai choppé sur mon lcc), donc il me faut une autre méthode (ou arrivé à linker urlmon par je ne sais quel moyen)

    J'ai aussi comme compilateur lcc, qui lui reconnait urlmon, mais n'arrive pas àn compilé les 3/4 du programme (il aime pas les shellExecute entre autre )

    En espérant avoir été assez clair et que vous pourrez m'apporter une réponse (ça commence à faire un moment que je tourne en rond sur ce problème ), merci d'avance ^^

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Méfies-toi, je ne suis pas sûr que IsValidURL vérifie que l'URL est accessible, mais plutot qu'elle est bien formée. Une URL peut être valide sans être joignable.
    C'est quel type d'URL, du HTTP ? Si oui le plus simple reste je pense de tenter de récupérer la page. Si ça échoue, soit l'URL est bidon, soit le serveur est inaccessible.
    Regarde plutot du cote de Wininet (InternetOpenUrl, ...)

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Par défaut
    Merci pour la réponse. J'avais regardé assez rapidement Wininet....
    Pour tester si la page est accessible est-ce que ça donnerait quelque chose de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DWORD dwFileSize = 0, dwByteRead = 0;
    DWORD dwContext = 0;
    HINTERNET hSession, hUrl;
    hSession = InternetOpen("test", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0);
    hUrl = InternetOpenUrl(hSession, "http://168.123.0.1/index.php", 0, 0, INTERNET_FLAG_EXISTING_CONNECT, (DWORD_PTR)&dwContext);
    Pour essayé d'ouvrir "http://168.123.0.1/index.php", et après un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (hUrl == NULL)
    suivit du code à exécuter si l'on a pas ouvert l'url :

  4. #4
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Pour le INTERNET_FLAG_EXISTING_CONNECT je suis pas sûr, je testerai plutot les options liées au cache.
    Tu peux faire des InternetReadFile après pour lire le fichier (si ça a réussi biensur).
    Faut pas oublier de tester le retour de InternetOpen, ainsi que InternetCloseHandle.
    Donc à priori je pense que c'est bon.

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Par défaut
    Merci beaucoup, je testerais tout ça ce soir (quand j'aurais devcpp sous la main ) et je vous tiendrais au courant ( vivement que ça marche)

    Merci encore pour l'aide ^^

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 5
    Par défaut
    désolé pour ceux que le up gène

    C'est juste pour dire ça marche (alléluia) et en profité pour mettre tant que je suis là

    Merci pour l'aide Aurelien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Problème n'arrive pas à vérifié si une URL est valide ou non
    Par kopax dans le forum Langage
    Réponses: 9
    Dernier message: 09/09/2011, 13h16
  2. Comment savoir si une URL est valide
    Par jauffray dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 30/05/2011, 12h28
  3. [RegEx] Vérifier si une url est valide
    Par paradeofphp dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2011, 18h11
  4. verifier si une url est exacte
    Par romuluslepunk dans le forum Applets
    Réponses: 14
    Dernier message: 16/08/2005, 16h41
  5. tester si une date est valide
    Par Andry dans le forum Langage
    Réponses: 5
    Dernier message: 17/09/2002, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo