2011-06-27 4 views
0

J'ai une application android qui accède à un webservice qui renvoie un gros résultat. Le type de retour sur le serveur C# de service Web est le type XmlElement. Mon problème est, quand je l'appelle en utilisant ksoap2 sur l'application android, il faut beaucoup de temps pour traiter le résultat. Comme le résultat est un XML, comment puis-je forcer le ksoap à me donner un résultat String sans le transformer en SoapObject? Ou existe-t-il une autre façon de traiter le résultat plus rapidement?webservice sur android avec ksoap2 trop lent

Merci et désolé pour mon mauvais anglais

Répondre

0

Je suppose que http ou get post et analyseur XML sax peuvent être utilisés sans savon. Vous obtiendrez une réponse plus rapide, une taille d'application plus petite.

+0

Merci pour la réponse. Je pense que le problème n'est pas sur la taille de la réponse, mais dans le temps de traitement, la librairie ksoap prend pour mettre la réponse de xml à SoapObjects. Je veux juste l'éviter et traiter la réponse par moi-même. – dcidral

+0

C'est ce que je veux dire, au lieu d'avoir du savon sur http, il suffit d'utiliser http get/post, puis analyser par vous-même en utilisant votre analyseur préféré, j'ai trouvé que c'est plus rapide. – bob

+0

Vous avez raison, je pense que c'est le seul moyen, merci pour l'aide. – dcidral

0

Vous devez l'exécuter dans une tâche asynchrone et le décomposer pour vous assurer que le résultat xml n'est pas trop grand. Le WSDL n'a pas d'importance puisqu'il n'est pas utilisé.

En termes de traitement du xml avec quelque chose d'autre plutôt que d'utiliser l'arbre SoapObject analysable:

Si vous faites cela, vous pourriez aussi bien utiliser KSAOP2 pas. Et vous ne trouverez probablement rien de plus rapide puisque KSOAP2 est déjà très léger et rapide. Vous utilisez simplement une pile différente pour faire la même chose.