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 :

Exception NameResolutionFailure pour acceder à un webservice


Sujet :

Android

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2011
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 51
    Points : 17
    Points
    17
    Par défaut Exception NameResolutionFailure pour acceder à un webservice
    Bonjour,

    Je suis en train de developper une application Android en C# avec MonoDevelop. Je dois acceder à un webservice à partir de mon application. Je ne m'y connais vraiment pas en webservice mais toutes les méthodes ont déjà été codé dans un Framework que j'ai testé dans un programme console en C# et qui fonctionne très bien.

    Maintenant, j'ai adapté mon application pour qu'elle puisse accéder au webservice. Pour cela, j'ai ajouté la permission pour accéder à Internet dans le manifest, j'ai ajouter la référence web pointant vers le web service et j'appelle une méthode qui va utiliser le web service. Et là, j'attrape une excpetion : NameResolutionFailure. Apparement cela siginifie que l'adresse du webservice est fausse mais comme je l'ai dit, j'ai tester sur console et ça fonctionne très bien.

    Ensuite j'ai debbuger le programme avec un point d'arrêt sur l'appel de la méthode qui pointe vers le web service. D'après ce que j'ai vu, on arrive vers un fichier qui s'appelle référence et qui montre les méthodes du webbservice...et le programme crash au moment d'une méthode Invoke...

    Voila où j'en suis, je n'arrive pas à résoudre ce problème, si quelqu'un peut m'aider...

    Merci d'avance.

  2. #2
    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
    D'après ton erreur, l'application n'arrive pas à joindre le serveur hébergeant le service.
    Comment fais-tu tes tests ? Depuis un terminal ou depuis l'émulateur ? Où est hébergé ton service ? En local ou sur un serveur distant ?

    Si tu ne nous en dit pas plus, il va être difficile de t'aider.
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2011
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 51
    Points : 17
    Points
    17
    Par défaut
    Je teste sur un emulateur et mon service est herbergé sur une machine en réseau local.

    En fait, je ne m'y connais pas beaucoup en web service, j'ai juste une classe qui contient des méthodes qui vont "appeler" ces services et retourné la valeur souhaité...le web service est déjà en place et fonctionne (testé en mode console).

    J'ai activé le manifest "INTERNET" sur mon projet. Après avoir ajouté les références web il y a un fichier qui se crée appeler reference.cs qui représente apparement les méthodes ddu service web. Chaque service appelle une méthode "Invoke" et si je debugue mon programme, c'est cet appel qui renvoi l'exception "NameResolutionFailure".

    En gros pour tester, j'instancie un objet du type du web service, et j'appelle une méthode simple qui est censé me renvoyé une String par l'intermédiaire du web service...

    Je sais pas si j'ai été clair...dites le moi sinon.

  4. #4
    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
    En fait il est possible que depuis l'émulateur ton application ne voit pas les autres machines du réseau local.
    Essaie d'héberger ton serveur en local (10.2.2.0 de mémoire depuis le terminal).
    Sinon testes depuis un vrai terminal.

    Au vu de ton message d'erreur, il y a 99% de chances que ça vienne de là.
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2011
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 51
    Points : 17
    Points
    17
    Par défaut
    En fait, je suis sur windows, donc pas de terminal comme sur linux, et je ne manipule pas trop l'invité de commande (si c'est ca dont tu parle). Sinon je vois pas trop ce que tu veux dire par "héberger le serveur en local", c'est à dire sur mon pc ?

    Edit : A moins que tu me parles du terminal sur l'emulateur...on peut lancer une application depuis le terminal ?

  6. #6
    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
    Non, quand je dis terminal je pense à l'émulateur lui même.

    Et oui, essaies d'installer ton service sur la même machine qui fait tourner l'émulateur Android. Tu peux accéder au localhost de ton pc depuis l'émulateur en utilisant l'ip 10.0.2.2 (et non pas 10.2.2.0 comme je l'ai dit plus haut).
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  7. #7
    Membre à l'essai
    Inscrit en
    Mai 2011
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 51
    Points : 17
    Points
    17
    Par défaut
    En fait, je ne sais pas trop comment manipuler les web service...Je sais que je peux y acceder avec l'ip local de la machine de mon maitre de stage...Pour l'instant il n'est pas là, donc je ne peux pas demander. Mais sinon, il n'y a pas un moyen d'acceder aux machine sur le reseau local a partir de l'émulateur ?

  8. #8
    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 n'en ai aucune idée. En revanche tu peux accéder à Internet depuis l'émulateur (du moins il me semble).
    Demande à ton maître de stage s'il ne peut pas te donner une url internet vers le service.
    Mais ne dispose-tu pas d'un vrai périphérique sous Android ? Ce serait tellement plus simple.
    Ingénieur Développement Mobile (Android / Windows Phone / Blackberry10)

  9. #9
    Membre à l'essai
    Inscrit en
    Mai 2011
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 51
    Points : 17
    Points
    17
    Par défaut
    Non justement je n'ai pas d'appareil Android pour faire des tests (pas encore en tout cas)...

    Mais je viens de trouver une solution. En fait l'url du web service qu'on m'a donné est "http://nomdhote/Service.asmx" et le nomdhote est un DNS et grace a la fonction nslookup sur l'invite de commande, j'ai recupéré l'adresse ip local...Il m'a suffit de creer une reference web en remplacant le nomdhote par l'ip de type "192.168.*.*" et je peux acceder au web service.

    C'est bizzare, parce que du coup l'emulateur arrive a acceder au reseau local mais ne prend pas en compte le DNS...pour d'apres ce que j'ai lu, le DNS est juste un nom donné qui pointe vers l'adresse ip.

  10. #10
    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
    Citation Envoyé par chinoismasque Voir le message
    C'est bizzare, parce que du coup l'emulateur arrive a acceder au reseau local mais ne prend pas en compte le DNS...pour d'apres ce que j'ai lu, le DNS est juste un nom donné qui pointe vers l'adresse ip.
    Oui c'est le cas. Mais je pense que l'émulateur n'arrivait pas à se connecter au serveur de résolution des noms de domaine, d'où ton erreur de "NameResolutionFailure".

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

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2011
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2011
    Messages : 51
    Points : 17
    Points
    17
    Par défaut
    Oui,merci en tout cas, tes indications m'ont beaucoup aidé.

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

Discussions similaires

  1. [aSp.net][c#] chemin relatif pour acceder a un fichier
    Par mahboub dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/04/2006, 00h59
  2. Configurer Mandriva 2006 pour acceder à internet?
    Par JavaAcro dans le forum Mandriva / Mageia
    Réponses: 22
    Dernier message: 08/02/2006, 14h47
  3. [MySQL] Cacher le mdp pour acceder a sa bdd ?
    Par BK dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/09/2005, 19h53
  4. Réponses: 1
    Dernier message: 10/09/2005, 15h36
  5. [JAR]chemin pour acceder au ressources & JAR
    Par DenisLorrain dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/04/2005, 22h45

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