Aller au contenu


Photo

Web Viewer


  • Please log in to reply
4 réponses à ce sujet

#1 intermedia69

intermedia69
  • Membres
  • PipPip
  • 66 messages
  • Genre :Homme
  • Lieu :France
  • Intérêts :informatique
  • FM Conférence : Honfleur 2005
  • FM : fmp11
  • OS : win xp


Posté 01 juillet 2012 - 20:57

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

#2 FredoMkb

FredoMkb
  • Membres
  • PipPipPipPipPip
  • 450 messages
  • Genre :Homme
  • Lieu :StÉ
  • Intérêts :À part rien, absolument tout le reste ! ;-)
  • FM : FMPA11
  • OS : OsX68


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 :

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)

#3 Clem

Clem
  • Membres
  • PipPipPipPipPipPipPipPip
  • 2 995 messages
  • Genre :Homme
  • Lieu :Groland
  • FM : FMPA 12.0.2, iOS
  • OS : OSX 10.6.8 | XP pro SP3 | Seven


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:

<!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.
Image envoyée

Clement Hoffmann aka clem
Certified "Do-it-yourself" developer.

#4 Clem

Clem
  • Membres
  • PipPipPipPipPipPipPipPip
  • 2 995 messages
  • Genre :Homme
  • Lieu :Groland
  • FM : FMPA 12.0.2, iOS
  • OS : OSX 10.6.8 | XP pro SP3 | Seven


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)
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" )

Image envoyée

Clement Hoffmann aka clem
Certified "Do-it-yourself" developer.

#5 FredoMkb

FredoMkb
  • Membres
  • PipPipPipPipPip
  • 450 messages
  • Genre :Homme
  • Lieu :StÉ
  • Intérêts :À part rien, absolument tout le reste ! ;-)
  • FM : FMPA11
  • OS : OsX68


Posté 03 juillet 2012 - 08:46

Très instructive ta solution Clem, merci :)
Fredo
"Un pas à la fois me suffit..." (Gandhi)