J'ai une application flexible, où l'utilisateur peut fournir un lien vers une ressource. Je veux effectuer une validation simple et vérifier si l'URL est réellement valide (pas seulement la structure, mais en fait tester le lien pour m'assurer que je reçois un 200 OK). J'ai pensé que j'utiliserais juste HttpService et utiliser la méthode HEAD, mais il semble que ce n'est disponible que lorsque vous définissez useProxy à true, mais j'ai essayé et j'ai toujours des erreurs; donc je suis assez sûr que je suis en train de faire quelque chose de mal .... voici un extrait du codeconfus au sujet de useProxy de HttpService (Flex 3)
var service:HTTPService = new HTTPService();
service.method = "HEAD";
service.url = url;
service.useProxy = true;
service.addEventListener(ResultEvent.RESULT, result);
service.addEventListener(FaultEvent.FAULT, error);
service.send();
Toute idée de ce que je fais mal? Je suis également ouvert à d'autres suggestions quant à la façon de vérifier si une URL est valide (je préférerais faire cela directement à partir de Flex, sans devoir retourner & sur le serveur). Merci.
EDIT (8/13/2009)
I mis en œuvre simple UrlValidator en utilisant un URLLoader et attribuer 2 auditeurs sur elle. un pour IOError, et l'autre pour Progress. Ma pensée était que Progress agirait comme un appel HEAD, et je pourrais juste tuer le flux après qu'une quantité de données a été reçue. Malheureusement, l'événement de progression est appelé dans le cas d'un 404 ou 403, ce qui va à l'encontre du but. J'ai aussi essayé cela avec l'événement Open, mais j'ai obtenu les mêmes résultats. Des idées?
Le problème avec l'utilisation d'une requête GET est qu'elle récupèrera réellement le fichier entier (ou tentera de le faire). Ceci n'est pas souhaité car le fichier peut être volumineux. Je veux simplement vérifier s'il existe. – gmoniey
bien ... Je pense que vous pouvez utiliser URLLoader au lieu de HTTPService et écouter l'événement OPEN et tous les autres événements distribués par URLLoader Vous pouvez arrêter le chargement lorsque vous obtenez l'événement OPEN en utilisant la méthode close() – OXMO456