ANDROID : CONNEXION REFUSÉE LORS DE L'APPEL D'UN SERVICE WEB
Hier j'ai essayé d'utiliser dans mon application Android un service web que j'ai développé avec C#, jusqu'au là tout marche bien mais lorsque j'ai lancé l'application dans le simulateur d'Android je reçois l'exception suivante :
java.net.SocketException: Permission denied (maybe missing INTERNET permission)
|
vu que c'est ma première fois que j'essaye d'appeler un service web dans une application Android, j'ai cherché sur internet et j'ai trouvé la solution dans Quedig, sans tarder la solution consiste à ajouter la ligne suivante dans le fichier manifest de l'application Android (AndroidManifest.xml)
<uses-permission android:name="android.permission.INTERNET" />
|
Avec cette ligne vous donnez la permission à votre application de se connecter à internet.
J’ai ajouté la ligne, j’ai lancé à nouveau l'application dans le simulateur et cette fois j'ai une autre exception :
java.net.ConnectException: failed to connect to localhost/127.0.0.1 (port 51546) after 15000ms: isConnected failed: ECONNREFUSED (Connection refused)
|
À nouveau je passe à Google j'ai fait des recherches et une autre fois j'arrive à trouver la cause :
j'essaye d'accéder à mon service web hébergé en local depuis l'émulateur Android installé sur la même machine en utilisant localhost(127.0.0.1) , L’adresse de la boucle locale localhost(127.0.0.1) correspond à celle de l’émulateur et non à l'adresse de l'ordinateur, donc l'application ne trouve pas le service web.
Pour régler ce problème Google a mit en place une autre adresse, qui pointe sur la boucle locale du pc : 10.0.2.2
Donc j'ai remplacé l'url que j'ai utilisée pour appeler mon service web :
http://localhost:51546/ListLivrWebService.asmx/HelloWorld
|
par
http://10.0.2.2:51546/ListLivrWebService.asmx/HelloWorld
|
J’ai lancé l’application à nouveau et cette fois j'ai réussi à récupérer du XML sur mon application Android en utilisant un service web.
Je souhaite que ces informations puissent aider quelqu'un.
Commentaires
Enregistrer un commentaire