Bonjour à tous
comment verifier si mon web viwer trouve bien la page web que je cher à lancer ?
Mon probleme est le suivant :
je souhaite lancer un script qui va verifier toutes les adresse web afin de mettre à jour un cahmp "site web fonctionne" sur oui/non
si j'execute donc un script "definir web viewer" je souhaiterais que selon selon le cas mon cahmp "site web fonctionne" affiche oui ou non
merci pour votre aide
Web Viewer
Commencé par intermedia69, 01 juil. 2012 20:57
4 réponses à ce sujet
#1
Posté 01 juillet 2012 - 20:57
#2
Posté 01 juillet 2012 - 22:31
Bonjour,
Voici une petite piste :
1. Il faut commencer par nommer l'objet "WebViewer" sur le modèle, par exemple "Web" ;
2. Ensuite, il faut entrer la formule ci-dessous, soit dans une rubrique de type calcul soit dans une condition dans un script :
3. Choisir l'affichage ou l'action à faire suivant le résultat retourné par cette formule.
Voici une petite piste :
1. Il faut commencer par nommer l'objet "WebViewer" sur le modèle, par exemple "Web" ;
2. Ensuite, il faut entrer la formule ci-dessous, soit dans une rubrique de type calcul soit dans une condition dans un script :
Occurrences ( ObtenirAttributObjetModele ( "Web" ; "Contenu" ) ; "</body>" ) > 0
3. Choisir l'affichage ou l'action à faire suivant le résultat retourné par cette formule.
Fredo
"Un pas à la fois me suffit..." (Gandhi)
"Un pas à la fois me suffit..." (Gandhi)
#3
Posté 02 juillet 2012 - 06:15
bjr,
l'idée de rechercher la présence du tag "</body>" n'est absolument pas (imho) la bonne façon de procéder…
Une adresse telle que "http://www.fmsource....go_fmcourse.png" retournera (erreurs type 4xx) le code source suivant:
une adresse telle que "http://www.fmcourse.com/" te redirigera ( erreurs type 3xx) vers une page te proposant éventuellement d'acheter ce nom de domaine ou autre salade commerciale et de fait contiendra la balise "</body>".
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
La solution passe (à mon avis) par une requête sur la réponse HTTP (GET ou HEAD) renvoyée par le serveur et nécessite pour un usage Mac/Win un plug-in (ScriptMaster par exemple) ou un AppleScript/shell sous Mac OS.
l'idée de rechercher la présence du tag "</body>" n'est absolument pas (imho) la bonne façon de procéder…
Une adresse telle que "http://www.fmsource....go_fmcourse.png" retournera (erreurs type 4xx) le code source suivant:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL /public/style_images/1_2_logo_fmcourse.png was not found on this server.</p> </body></html>
une adresse telle que "http://www.fmcourse.com/" te redirigera ( erreurs type 3xx) vers une page te proposant éventuellement d'acheter ce nom de domaine ou autre salade commerciale et de fait contiendra la balise "</body>".
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
La solution passe (à mon avis) par une requête sur la réponse HTTP (GET ou HEAD) renvoyée par le serveur et nécessite pour un usage Mac/Win un plug-in (ScriptMaster par exemple) ou un AppleScript/shell sous Mac OS.

Clement Hoffmann aka clem
Certified "Do-it-yourself" developer.
#4
Posté 02 juillet 2012 - 15:29
... un exemple utilisant ScriptMaster :
• Retourne le code standard HTTP (200, 302, 404 etc... cf http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
• Retourne 1 si le code standard HTTP renvoie la valeur 200 ( càd "OK") ou 0 pour toute autre réponse.
• Retourne le code standard HTTP (200, 302, 404 etc... cf http://en.wikipedia.org/wiki/List_of_HTTP_status_codes)
RegisterGroovy( "getHTTPStatus( fm_url )" ; "/**¶
* getHTTPStatus ( fm_url )¶
* by clem 2012-07-02¶
* Retourne le code standard émis par un server Internet.¶
*¶
* === Parameters ===¶
* fm_url: l'url à tester.¶
**/¶
¶
¶
import static java.net.HttpURLConnection.*¶
¶
def urlExists( thisURL ){¶
try {¶
followRedirects = false¶
huc = (HttpURLConnection) new URL(thisURL).openConnection()¶
huc.requestMethod = \"HEAD\"¶
return (huc.responseCode )¶
}¶
catch (Exception e) {¶
return \"ERROR: $e.message\"¶
}¶
}¶
¶
return (urlExists(fm_url))"; "isGui=false" )
• Retourne 1 si le code standard HTTP renvoie la valeur 200 ( càd "OK") ou 0 pour toute autre réponse.
RegisterGroovy( "getHTTPStatus( fm_url )" ; "/**¶
* getHTTPStatus ( fm_url )¶
* by clem 2012-07-02¶
* Retourne le code standard émis par un server Internet.¶
*¶
* === Parameters ===¶
* fm_url: l'url à tester.¶
**/¶
¶
¶
import static java.net.HttpURLConnection.*¶
¶
def urlExists( thisURL ){¶
try {¶
followRedirects = false¶
huc = (HttpURLConnection) new URL(thisURL).openConnection()¶
huc.requestMethod = \"HEAD\"¶
return (huc.responseCode == HTTP_OK ) //? \"Oui\" : \"Non\"¶
}¶
catch (Exception e) {¶
return \"ERROR: $e.message\"¶
}¶
}¶
¶
return (urlExists(fm_url))"; "isGui=false" )

Clement Hoffmann aka clem
Certified "Do-it-yourself" developer.
#5
Posté 03 juillet 2012 - 08:46
Très instructive ta solution Clem, merci
Fredo
"Un pas à la fois me suffit..." (Gandhi)
"Un pas à la fois me suffit..." (Gandhi)
FM Source est un service gratuit de La Source multimédia - spécialistes FileMaker
Développement FileMaker. Formation FileMaker. Hébergement FileMaker. Le blog FileMaker. Vente de licences FileMaker. Conférence FileMaker. Forum FileMaker. FileMaker resources













