Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android]lenteur lors d'un web service avec ksoap2

    6 mai 2013 à 10:32:00

    Bonjour, 

    je fais actuellement une application android qui appel un webservice. Pour cela j'utilise la bibliothèque Ksoap2 mais entre le moment où mon appli appel la fonction call de ksoap et le moment ou la fonction à fini, il se passe près de 2 secondes?

    Savez vous comment remédiez à cette lenteur?

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      6 mai 2013 à 14:05:27

      Bonjour,

      C'est peux être normal que cela soit lent (connexion sur un serveur distant), si tu ne veux pas gêner l'utilisateur regarde du coté du multi-threading.

      • Partager sur Facebook
      • Partager sur Twitter
        6 mai 2013 à 14:18:16

        L'échange en lui même peut prendre ce temps. Si tu test en local cependant, 2 secondes semblent en effet relativement beaucoup.

        Il faut peut-être regarder du côté de la construction de ta requête (beaucoup de paramètres? Accès à une BDD Sqlite?) ou bien du côté du traitement de la réponse (beaucoup de données? Parcourt et traitement du résultat mal optimisé?)

        @riventop : Dans tous les cas son appel est déjà dans une AsyncTask ou un thread à part car Android interdit l'utilisation du réseau dans l'IU thread.

        -
        Edité par Zarkaos 6 mai 2013 à 14:19:33

        • Partager sur Facebook
        • Partager sur Twitter
        Une touche d'humour pour la pause café : Quotes de Développeurs 
          6 mai 2013 à 14:50:56

          @zarkaos est ce que tu veux dire qu'il n'y pas besoin de mettre explicitement son appel dans une AsyncTask car moi si je ne le fais pas j'ai une exception NetworkOnMainThreadException
          • Partager sur Facebook
          • Partager sur Twitter
            7 mai 2013 à 14:56:56

            Est-tu sur d'avoir bien lu ma réponse? Surtout la dernière ligne.
            • Partager sur Facebook
            • Partager sur Twitter
            Une touche d'humour pour la pause café : Quotes de Développeurs 
              8 mai 2013 à 10:49:21

              Bonjour,

              Est ce que l'utilisation de Soap est imposée ? si non pourquoi ne pas essayer d'utiliser les web service REST ?

              Soap se base sur du XML qui est un peu lourd à parser en comparaison avec Json qui peut être utilisé dans REST. (sans parler de la complexité entre les deux).

              Cordialement.  

              -
              Edité par alikyo 8 mai 2013 à 10:49:38

              • Partager sur Facebook
              • Partager sur Twitter
                15 mai 2013 à 14:24:51

                alikyo a écrit:

                Bonjour,

                Est ce que l'utilisation de Soap est imposée ? si non pourquoi ne pas essayer d'utiliser les web service REST ?

                Soap se base sur du XML qui est un peu lourd à parser en comparaison avec Json qui peut être utilisé dans REST. (sans parler de la complexité entre les deux).

                Cordialement.  

                -
                Edité par alikyo le 8 mai 2013 à 10:49:38


                je ne sais pas si ksoap est obligatoire, mais l'url du web service se termine par "wsdl", une idée?

                zarkaos a écrit:

                Est-tu sur d'avoir bien lu ma réponse? Surtout la dernière ligne.

                Donc l'appel n'est pas implicite :-), mais cela veut donc dire que je dois utiliser un  asyntask (ou équivalent) à chaque appel de webservice. J'ai créé une classe qui se charge d'effectuer les appel à ksoap. Le problème est que je dois me servir du résultat de la requete pour modifier des contenus graphique de mon appli. Donc si je met le asyntask hors de l'activity (pour écrire le asynctask qu'une seule fois), comment faire pour qu'il soit capable de modifier des éléments graphique de mon activité?

                Merci



                • Partager sur Facebook
                • Partager sur Twitter
                  16 mai 2013 à 18:12:21

                  Bonjour,

                  WDSL c'est du Soap.

                  Généralement les fonctions qui font appel au "Network" sont un peu longues, donc il suffit d'afficher à l'utilisateur un ProgresDialog lui demandant d'attendre la fin de l’opération.

                  Cordialement.

                  • Partager sur Facebook
                  • Partager sur Twitter

                  [Android]lenteur lors d'un web service avec ksoap2

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown