[Résolu] [DB-RS] Ping une URL

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
Avatar de l’utilisateur
Alpha Demon
Messages : 27
Inscription : 14 Avr 2017 15:03

[Résolu] [DB-RS] Ping une URL

Message par Alpha Demon » 25 Mai 2017 20:06

Bonjour, j'aimerai grâce à un script pouvoir vérifier la présence de mise à jour du jeu et afficher un message. Pour cela j'ai d'abord tenté la méthode avec une variable Ping mais elle ne prend en compte que les IP, j'ai donc utilisé WWW mais cela ne fonctionne toujours pas. Je voudrai pouvoir ping un fichier et recevoir une réponse pour pouvoir la tester.

Code : Tout sélectionner

public Text MAJ;

WWW pingweb = new WWW("http://monsite.fr/monfichierversion2.txt");

    void Start()
    {
        if (pingweb.isDone)
        {
            MAJ.enabled = true;
        }
    }
Merci d'avance.

Avatar de l’utilisateur
Kazzad
Messages : 50
Inscription : 17 Août 2016 19:51
Localisation : France
Contact :

Re: [DB-RS] Ping une URL

Message par Kazzad » 25 Mai 2017 20:27

Bonsoir,
une des solutions est de récupérer le code HTML de la page a laquelle tu veux accéder (ici http://monsite.fr/monfichierversion2.txt), et de regarder ce que ce code contient. Pour cela, on ne va pas récupérer tout le code de la page, mais seulement les premiers caractères.

Il faut commencer par récupérer ce bout de code HTML:

Code : Tout sélectionner

string getHtmlFromUrl(string ressource){
		string html = string.Empty;
		HttpWebRequest req = (HttpWebRequest)WebRequest.Create (ressource);
		try{
			using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()){
				bool isSucess = (int)resp.StatusCode < 299 && (int)resp.StatusCode >= 200;
				if(isSucess){
					using (StreamReader reader = new StreamReader(resp.GetResponseStream())){
						char[] cs = new char[80];
						reader.Read (cs ,0, cs.Length);
						foreach(char ch in cs){
							html += ch;
						}
					}
				}
			}
		}
		catch{
			return "";
		}
		return html;
	}
Ici, a partir de n'importe quelle URL donnée, on récupère les 80 premiers caractères.

Il suffit de faire une fonction qui donne l'URL ou aller chercher ces précieux caractères:

Code : Tout sélectionner

void CheckUrlContent() {
		string htmlText = getHtmlFromUrl ("L'URL que tu veux tester");
		Debug.Log (htmlText);
	}
Les 80 premiers caractères du code HTML de l'URL donnée seront stockés dans la variable htmlText, il ne te reste plus qu'a tester son contenu: si la variable est vide, la page n'existe pas/tu n'as pas internet. Sinon, elle existe.

Bien sur, on peut mettre moins de 80 caractères, tu as juste a changer cette ligne la:

Code : Tout sélectionner

char[] cs = new char[80];
Cette méthode permet aussi de récupérer des infos contenues dans le code HTML de ta page (nom de la version, notes, je sais pas quoi...) en modifiant un peu ce qu'on choisit comme échantillon.
Ne disons pas que ça fonctionne, disons que nous n'avons pas trouvé de dysfonctionnement.

Avatar de l’utilisateur
Alpha Demon
Messages : 27
Inscription : 14 Avr 2017 15:03

Re: [DB-RS] Ping une URL

Message par Alpha Demon » 25 Mai 2017 21:23

Bonsoir, merci de m'avoir répondu rapidement. J'ai un petit soucis avec le code que vous m'avez donné je ne trouve pas le namespace de getHtmlFromUrl.

Avatar de l’utilisateur
Kazzad
Messages : 50
Inscription : 17 Août 2016 19:51
Localisation : France
Contact :

Re: [DB-RS] Ping une URL

Message par Kazzad » 25 Mai 2017 21:31

Tu peux me faire un copier-coller de l'erreur que tu as ?
Ne disons pas que ça fonctionne, disons que nous n'avons pas trouvé de dysfonctionnement.

Avatar de l’utilisateur
Alpha Demon
Messages : 27
Inscription : 14 Avr 2017 15:03

Re: [DB-RS] Ping une URL

Message par Alpha Demon » 25 Mai 2017 21:35

Voilà il ne reconnaît pas le namespace :

Image

Image

Avatar de l’utilisateur
Kazzad
Messages : 50
Inscription : 17 Août 2016 19:51
Localisation : France
Contact :

Re: [DB-RS] Ping une URL

Message par Kazzad » 25 Mai 2017 21:39

D'où viens "using ExpertPdf.HtmlToPdf" ? Dans le code que je t'ai donné, il n'y a pas besoin de ça.

Essaie de la supprimer
Ne disons pas que ça fonctionne, disons que nous n'avons pas trouvé de dysfonctionnement.

Avatar de l’utilisateur
Alpha Demon
Messages : 27
Inscription : 14 Avr 2017 15:03

Re: [DB-RS] Ping une URL

Message par Alpha Demon » 25 Mai 2017 21:46

Je l'ai ajouté car c'est le namespace qui correspond à getHtmlFromUrl mais même sans il ne marche pas.

Avatar de l’utilisateur
Kazzad
Messages : 50
Inscription : 17 Août 2016 19:51
Localisation : France
Contact :

Re: [DB-RS] Ping une URL

Message par Kazzad » 25 Mai 2017 21:53

Donne moi l'erreur que tu obtiens dans la console sans le "using ExpertPdf.HtmlToPdf" s'il te plait.
Ne disons pas que ça fonctionne, disons que nous n'avons pas trouvé de dysfonctionnement.

Avatar de l’utilisateur
Alpha Demon
Messages : 27
Inscription : 14 Avr 2017 15:03

Re: [DB-RS] Ping une URL

Message par Alpha Demon » 25 Mai 2017 21:57

Image

Avatar de l’utilisateur
Alpha Demon
Messages : 27
Inscription : 14 Avr 2017 15:03

Re: [DB-RS] Ping une URL

Message par Alpha Demon » 25 Mai 2017 21:58

Oh pardon vraiment j'avais oublié la majuscule à GetHtmlFromUrl.

Répondre

Revenir vers « (C#) CSharp »