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

C# Discussion :

requete http en mode Asynchrone


Sujet :

C#

  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut requete http en mode Asynchrone
    Bonjour

    Je cherche a lancer une requete http en mode Asynchrone afin de ne pas laisser l'utilisateur pendu en attendant le retour alors que le resultat de la requete peut etre traité en Backround

    Donc, pour effectuer, cela je pensais utiliser un BackroundWorker, mais c'est peut etre un peu lourd pour la cause ...
    Ensuite j'ai trouvé un exemple tout fait de Microsoft :

    http://msdn.microsoft.com/en-us/libr...tresponse.aspx

    Mais j'ai sans doute rien compris, car avec cet exemple on reste bloqué tant que la requete n'est pas entierement effectuée

    Avez-vous un autre conseil ou suggestion

    Merci de votre aide

  2. #2
    Membre chevronné

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2011
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 244
    Par défaut
    Hello,

    Ce que je vais dire va peut-être paraitre bête, mais pour que ça ne se bloque pas, il faut avoir quelquechose à faire...
    En l'occurrence, avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // The response came in the allowed time. The work processing will happen in the 
    // callback function.
    allDone.WaitOne();
    le processus en cours se bloque en attendant que la réponse arrive et soit traitée par les méthodes RespCallback et ReadCallBack.

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci pour ta reponse plume13

    En fait si je suis l'exemple en pas a pas, ca bloque AVANT WaitOne(), pendant l'instruction ci-apres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
          // Start the asynchronous request.
          IAsyncResult result=
            (IAsyncResult) myHttpWebRequest.BeginGetResponse(new AsyncCallback(RespCallback),myRequestState);
    Donc en résumé et dans l'état, je ne vois pas l'intéret de cette methode BeginGetResponse qui n'apporte rien de plus qu'un simple GetResponse

  4. #4
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : autre
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Il y a une remarque dans la documentation
    The BeginGetResponse method requires some synchronous setup tasks to complete (DNS resolution, proxy detection, and TCP socket connection, for example) before this method becomes asynchronous. As a result, this method should never be called on a user interface (UI) thread because it might take some time, typically several seconds. In some environments where the webproxy scripts are not configured properly, this can take 60 seconds or more. The default value for the downloadTime attribute on the <webProxyScipt> config file element is one minute which accounts for most of the potential time delay.
    Le début de la méthode est synchrone, d'où ton problème.
    Il faut donc utiliser un thread.

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci Meziantou

    Effectivement ca m'avait échapé !

    Mais donc je ne vois pas beaucoup l'avantage de cette methode par rapport a emballer un simple GetResponse dans un BackroundWorker !

    Mais s'il y a des subtilités a comprendre je serais ravi d'en faire la connaissance

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/02/2008, 18h40
  2. [URL] Encoder une URL (requete Http)
    Par webspeak dans le forum Général Java
    Réponses: 14
    Dernier message: 29/03/2006, 10h47
  3. Réponses: 2
    Dernier message: 20/06/2005, 14h57
  4. [http] comment faire une requete http
    Par Slimer dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 28/07/2004, 11h48
  5. [.NET] Une question technique a propos du mode asynchrone
    Par nicknolt dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 08/06/2004, 10h07

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