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

Android Discussion :

Webservice.NET et KSOAP


Sujet :

Android

  1. #1
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut Webservice.NET et KSOAP
    Bonsoir,

    Après plusieurs recherches infructueuses, je me permet de demander de l'aide ici.
    Mon application a besoin de récupérer à partir d'un service web (.NET, C#, crée par moi) une valeur (un entier).
    J'utilise pour ce faire la libraire KSOAP2 et plus particulièrement son implémentation Android (ksoap2-android-assembly-2.5.4-jar-with-dependencies).

    Voici mon code se chargeant de faire l'appel :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    private static final String SOAP_ACTION = "http://mondomaine.fr/maFonction";
    private static final String METHOD_NAME = "maFonction";
    private static final String NAMESPACE = "http://mondomaine.fr/";
    private static final String URL = "http://mondomaine.fr/services/mesServices.asmx";
     
    	private int maFonction()
    	{
    		int week = 30;
     
    		try 
    		{
                SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
                Log.d("Path", "1");
                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                envelope.dotNet = true;
                envelope.setOutputSoapObject(request);
                Log.d("Path", "2");
     
                HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
                androidHttpTransport.debug = true;
                Log.d("Path", "3");
     
                androidHttpTransport.call(SOAP_ACTION, envelope);
                Log.d("Path", "4");
                SoapObject result = ((SoapObject) envelope.getResponse());
                week =  Integer.parseInt(result.getProperty(0).toString());
                Log.d("Path", "5");
            } 
    		catch (Exception e) 
    		{
    			Log.e("Error", e.toString());
            }
     
    		return week;
    	}

    Il se trouve que ce code génère une exception de type org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <html>@1:6 in java.io.InputStreamReader@405610b8) lors de l'appel à call.

    J'ai déjà vérifié maintes fois mes valeurs SOAP_ACTION, ..., j'ai changé la version de l'enveloppe, rien n'y fait, toujours la même erreur au même endroit.

    Je remercie d'avance ceux qui prendront le temps de m'aider.

    Cordialement.
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Tu as une discussion intéressante sur ce lien .
    http://www.anddev.org/other-coding-p...-t1185-15.html

    Ce qui diffère avec ton code, serait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final String NAMESPACE = "http://mondomaine.fr/";
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static final String NAMESPACE = "http://mondomaine.fr";
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Merci pour la réponse, mais je persiste à avoir la même erreur :s

    J'ai même essayé de recréer mon service en WCF, rien n'y change :'(

    J'ai beau trifouiller de partout, encore et toujours la même erreur.
    Est-ce que quelqu'un peut essayer depuis chez lui s'il vous plait ?
    Les informations nécessaires sont :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private static final String SOAP_ACTION = "http://thinkdroid.eu/getWeek";
        private static final String METHOD_NAME = "getWeek";
        private static final String NAMESPACE = "http://thinkdroid.eu";
        private static final String URL = "http://thinkdroid.eu/services/LoLChampionRotation.svc";
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private static final String SOAP_ACTION = "http://thinkdroid.eu/getWeek";
        private static final String METHOD_NAME = "getWeek";
        private static final String NAMESPACE = "http://thinkdroid.eu";
        private static final String URL = "http://thinkdroid.eu/services/LoLChampionRotationWeek.asmx";
    Merci d'avance.
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    C'est normal que depuis un navigateur aucune des url ne soit accessible ? tu es sûr de tes webservices ?
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  5. #5
    Rédacteur
    Avatar de Viish
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2009
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 427
    Points : 1 499
    Points
    1 499
    Par défaut
    Je ne sais pas si c'est normal, je début juste en webservices. C'est pour ça que j'en appelle à l'aide.

    Ci dessous le code de mon webservice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    namespace Services
    {
        [WebService(Namespace = "http://thinkdroid.eu/")]
        public class LoLChampionRotationWeek : System.Web.Services.WebService
        {
            [WebMethod]
            public int getWeek()
            {
                return 33;
            }
        }
    }
    Mais je vois pas où j'aurai pu faire une faute sur si peu de lignes :s
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  6. #6
    Candidat au Club
    Homme Profil pro
    Cybex
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Cybex
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut AIDE
    J'ai le même problème qui persiste..J'ai essayé tout sans aboutir à rien Je serai vraiment reconnaissant si quelqu'un entre vous peut m'aider!

  7. #7
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    Je ne peux pas t'en dire plus, mais personnellement, rien qu'en constatant qu'on n'arrive à rien en passant déjà par le navigateur montre que ça ne vient pas de ton application Android, mais ton Web Services surement mal déployé.

    Je n'ai aucune base en Web Service .NET, et ma remarque est peut-être stupide, mais ton hébergeur sait-il interpréter ce type de Web Service?

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur Informatique et Développeur Android
    Inscrit en
    Janvier 2010
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Informatique et Développeur Android

    Informations forums :
    Inscription : Janvier 2010
    Messages : 384
    Points : 321
    Points
    321
    Par défaut
    Citation Envoyé par Viish Voir le message
    Bonsoir,

    Après plusieurs recherches infructueuses, je me permet de demander de l'aide ici.
    Mon application a besoin de récupérer à partir d'un service web (.NET, C#, crée par moi) une valeur (un entier).
    J'utilise pour ce faire la libraire KSOAP2 et plus particulièrement son implémentation Android (ksoap2-android-assembly-2.5.4-jar-with-dependencies).

    Voici mon code se chargeant de faire l'appel :
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    private static final String SOAP_ACTION = "http://mondomaine.fr/maFonction";
    private static final String METHOD_NAME = "maFonction";
    private static final String NAMESPACE = "http://mondomaine.fr/";
    private static final String URL = "http://mondomaine.fr/services/mesServices.asmx";
     
    	private int maFonction()
    	{
    		int week = 30;
     
    		try 
    		{
                SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
                Log.d("Path", "1");
                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                envelope.dotNet = true;
                envelope.setOutputSoapObject(request);
                Log.d("Path", "2");
     
                HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
                androidHttpTransport.debug = true;
                Log.d("Path", "3");
     
                androidHttpTransport.call(SOAP_ACTION, envelope);
                Log.d("Path", "4");
                SoapObject result = ((SoapObject) envelope.getResponse());
                week =  Integer.parseInt(result.getProperty(0).toString());
                Log.d("Path", "5");
            } 
    		catch (Exception e) 
    		{
    			Log.e("Error", e.toString());
            }
     
    		return week;
    	}

    Il se trouve que ce code génère une exception de type org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG <html>@1:6 in java.io.InputStreamReader@405610b8) lors de l'appel à call.

    J'ai déjà vérifié maintes fois mes valeurs SOAP_ACTION, ..., j'ai changé la version de l'enveloppe, rien n'y fait, toujours la même erreur au même endroit.

    Je remercie d'avance ceux qui prendront le temps de m'aider.

    Cordialement.
    Bonsoir,
    t'a pas esayer d'utiliser php pour le ws ? avec nusoap coté ws et ksoap2 ccoté android ce simple

  9. #9
    Candidat au Club
    Homme Profil pro
    Cybex
    Inscrit en
    Avril 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Cybex
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Re
    essai avec l'url suivante:
    http://mondomaine.fr/services/mesServices

    En faites, j'ai évité de mettre l'extension (.asmx)! C'est tout ce que j'ai fait.. J’espère ça vous aidera un peu

Discussions similaires

  1. Débutant WebService .NET
    Par memotech dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 18/05/2009, 16h32
  2. [Web Service] Consommer un WebService .Net depuis PHP en asynchrone
    Par Joooooon dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 02/04/2009, 16h15
  3. Consommation d'un WebService .NET renvoyant Objet Complexe.
    Par gregb34 dans le forum Services Web
    Réponses: 1
    Dernier message: 03/06/2008, 15h06
  4. Concurrence dans un WebService .NET
    Par joKED dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 13/10/2007, 01h02
  5. Utiliser un webservice .NET avec flex
    Par catd dans le forum Flex
    Réponses: 1
    Dernier message: 12/10/2007, 15h46

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