Bonjour le Forum,
Je cherche une solution qui me permette de tester l'accès à un site HTTP "INTRANET" , si le site est accessible je ferais apparaitre un point vert et s'il est inaccessible un point rouge.
Merci pour votre aide.
Bonjour le Forum,
Je cherche une solution qui me permette de tester l'accès à un site HTTP "INTRANET" , si le site est accessible je ferais apparaitre un point vert et s'il est inaccessible un point rouge.
Merci pour votre aide.
Bonsoir
Je ne peux tester là tout de suite mais peut-être tu le peux :
En plaçant un WebBrowser (éventuellement invisible) sur le Form et lui donnant l'URL du site cherché, que se passe-t-il quand le WebBrowser n'obtient pas de réponse ou une erreur 404 ?
Dis-moi...
Bonjour Phil Rob,
J'obtiens le message navigation vers la page Web annulée.
Bonjour,
Le WebBrowser n'était pas la bonne idée.
Voici une solution qui fonctionne, avec un Form contenant seulement un bouton, j'ai placé ce code :
J'obtiens le message approprié selon que j'envoie l'URL www.BIDONgoogle.com/ ou l'URL www.google.com/.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim UneURL As String = "https://www.BIDONgoogle.com/" Dim WRQ As System.Net.WebRequest = System.Net.WebRequest.Create(UneURL) Dim AccesWEB As Boolean Try WRQ.GetResponse() AccesWEB = True Catch AccesWEB = False End Try If AccesWEB Then MessageBox.Show("Site accessible") Else MessageBox.Show("Site non accessible") End If End Sub
...![]()
Pas besoin de la grosse machinerie.
Un simple GET suffit:
Edit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Function CheckAccessToUrl(ByVal Url As String) As Boolean Dim result As Boolean Dim request As HttpWebRequest Dim response As HttpWebResponse request = CType(WebRequest.Create(Url), HttpWebRequest) Try response = CType(request.GetResponse(), HttpWebResponse) result = (response.StatusCode = HttpStatusCode.OK) response.Close() Catch ex As Exception result = False End Try Return result End Function
Devancé par Phil Rob.
Je suggère toutefois d'utiliser ma méthode qui est plus souple, qui libère les ressources utilisées et qui surtout tient compte du retour.
En effet, un site peux répondre mais renvoyer 401, 403, 503, etc. et du coup, tu n'y a pas accès.
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
Merci à vous 2 pour vos réponses,
Je n'arrive à faire fonctionner que la solution de Phil Rob, mais j'ai l'image qui clignote " si accès valide un point vert apparait, sinon point rouge", je suis sous un Timer "qui est lui même dans un Tread", il interroge le site Intranet toute les 1.5 secondes , si l'accès est valide un point vert apparait, sinon point rouge.
Pour la solution de popo, je mets l'adresse sous la variable Url
Dim Url As String = "https://www.BIDONgoogle.com/",
j'ai une erreur argument non spécifié pour le paramètre Url qui apparait lorsque je fais appel à la fonction CheckAccessToUrl()
Juste une "bête" question :
Après Dim Url As String = "https://www.BIDONgoogle.com/", lorsque tu appelles la fonction de Popo, tu n'oublies pas de lui passer la variable Url ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part CheckAccessToUrl(Url)
Non.... je n'avais pas ajouter Url.
Merci c'est une remarque utile
Sinon, que dois-je modifier dans le code de popo pour arriver à ce résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If AccesWEB Then PictureBox3.Image = My.Resources.Vert else PictureBox3.Image = My.Resources.Rouge End If
Ce n'est pas pour rien que ma fonction renvoie un booléen.
Donc tout simplement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 If CheckAccessToUrl(Url) Then PictureBox3.Image = My.Resources.Vert else PictureBox3.Image = My.Resources.Rouge End If
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
Effectivement, le renvoi de la valeur booléen fonctionne parfaitement, un grand merci à vous deux
Partager