IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Phone .NET Discussion :

Comment actualiser une page web via le code behind C# [Windows Phone 8]


Sujet :

Windows Phone .NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 22
    Points
    22
    Par défaut Comment actualiser une page web via le code behind C#
    Bonjour à tous,

    Voici ce qu'exécute mon application:
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    1- chargement d'une page web comme ceci à l'adresse contenue dans la variable adresseUri:
    string page;
    WebClient client = new WebClient();
    page = await client.DownloadStringTaskAsync(new Uri(adresseUri));
    2- traitements divers utilisant le contenu de la page

    3- dans un autre module que celui en 1- rechargement de la même page web après les traitements pour voir si elle a été modifiée:
    string page;
    WebClient client = new WebClient();
    page = await client.DownloadStringTaskAsync(new Uri(adresseUri));

    Voici mon problème:
    ''''''''''''''''''''''''''''''''''''''

    La page soi-disant rechargée une nouvelle fois est toujours la même alors qu'elle a été modifiée.
    Pour obtenir la page modifiée, il faut redémarrer l'application.


    D'où la question:
    '''''''''''''''''''''''''''''''

    Que faut-il faire par le code-behind C# pour récupérer la page modifiée sans être obligé de redémarrer l'application ?

    Merci pour votre aide.

  2. #2
    Membre émérite
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Points : 2 682
    Points
    2 682
    Par défaut
    Hello,

    Tu peux regarder de ce coté :

    http://www.rudyhuyn.com/blog/2012/10...eb-sans-cache/
    .
    Pas de question technique en MP, merci.
    .
    Un emulator Gameboy Color pour Windows Phone ?
    c'est moi qui l'ai fait

  3. #3
    Membre à l'essai
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Août 2005
    Messages : 17
    Points : 22
    Points
    22
    Par défaut
    Merci Samuel pour ta réponse.

    Je suis allé voir le lien que tu me proposes. Dans le blog associé il est dit que la manière la plus élégante pour résoudre mon problème était d'exécuter le code suivant:

    var request = WebRequest.CreateHttp("http://www.feelmygeek.com/rand.php");
    request.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.MinValue.ToString();
    request.Headers[HttpRequestHeader.CacheControl] = "no-cache";
    request.BeginGetResponse((iar) =>{
    var response=request.EndGetResponse(iar).GetResponseStream();
    var val = new StreamReader(response).ReadToEnd();
    Deployment.Current.Dispatcher.BeginInvoke(() => {
    MessageBox.Show(val);
    });
    }, null);

    J'ai donc intégré ce code dans mon application en modifiant évidemment l'adresse en argument de la méthode WebRequest.CreateHttp pour avoir ceci
    (après ajout de commentaires pour mieux comprendre ce qui se passe car je débute):

    // Initialiser une nouvelle instance de HttpWebRequest pour l'URI spécifié.
    var request = WebRequest.CreateHttp("http://*****over-blog.com");

    // HttpRequestHeader sont les en-têtes HTTP qui peuvent être spécifiés dans une requête du client
    // Headers spécifie une collection de paires nom-valeur qui composent les en-têtes HTTP.
    // (Substitue WebRequest.Headers.)

    // En-tête If-Modified-Since qui spécifie que l'opération demandée ne doit être exécutée que si la ressource demandée
    // a été modifiée depuis la date et l'heure indiquées, ici depuis "01/01/0001 00:00:00"
    request.Headers[HttpRequestHeader.IfModifiedSince] = DateTime.MinValue.ToString();

    // En-tête Cache-Control qui spécifie les directives devant être respectées par l'ensemble des mécanismes de contrôle de cache tout au long de la chaîne de requête/réponse.
    request.Headers[HttpRequestHeader.CacheControl] = "no-cache";

    // Démarrer une requête asynchrone adressée à une ressource Internet
    request.BeginGetResponse((iar) =>
    {
    var response = request.EndGetResponse(iar).GetResponseStream();
    var val = new StreamReader(response).ReadToEnd();
    Deployment.Current.Dispatcher.BeginInvoke(() =>
    {
    MessageBox.Show(val);
    });
    }, null);

    Et ça marche !...
    Mon traitement reste à effectuer à la place du MessageBox (qui m'affiche la nouvelle page sur mon mobile, ce qui est un peu long (une vingtaine de secondes) vu la taille de la page).
    La réponse est asynchrone mais cela n'a pas de conséquence sur ce que je veux obtenir.
    Je considère donc le problème comme résolu. Toutefois si tu as une idée pour rendre ce processus synchrone, je suis preneur à titre de curiosité. (l'utilisation de await ne semble pas possible ???!!!).
    Encore merci Samuel.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment envoyer un mail à partir d'une page WEB via Thunderbid ?
    Par Zebulon777 dans le forum Général JavaScript
    Réponses: 23
    Dernier message: 21/02/2011, 11h17
  2. Réponses: 5
    Dernier message: 05/10/2009, 13h05
  3. comment actualiser une page web automatiquement ?
    Par safadev dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2006, 23h34
  4. Comment fermer une page web automatiquement
    Par dessinateurttuyen dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 10/08/2006, 10h20
  5. Comment affciher une page web dans ma feuille MDI
    Par callo dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 29/01/2005, 17h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo