java.net.ConnectException: localhost / 127.0.0.1: 8080 - Connexion refusée

97

J'utilise le serveur apache xampp pour servir des ressources à l'application à partir de ma machine. Mais j'obtiens l'erreur ci-dessus.

J'ai quelque chose sur Google. pointant vers une solution possible ici http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a

Quelle est la solution au problème ci-dessus?

pradeep
la source
1
Utilisez le bouclage 10.0.2.2 vers votre hôte local (127.0.0.1). Vous pouvez en savoir plus ici Android Emulator Networking
Dmytro Melnychuk

Réponses:

292

Puisque vous n'avez pas spécifié que vous êtes connecté à un serveur à partir du périphérique ou de l'émulateur, je suppose que vous utilisez votre application dans l'émulateur.

Si vous faites référence à votre hôte local sur votre système à partir de l'émulateur Android, vous devez utiliser http://10.0.2.2:8080/Parce que l'émulateur Android s'exécute dans une machine virtuelle, c'est donc ici 127.0.0.1ou localhostsera la propre adresse de bouclage de l'émulateur.

Référez-vous: Réseau d'émulateur

Vikas Patidar
la source
Oui, exactement je fais la même chose. Pouvez-vous expliquer en détail. Où changer l'adresse IP en 10.0.2.2. Ceci est le dossier auquel j'essaie d'accéder à partir du serveur xampp localhost: 8080 / aero
pradeep
1
Je l'ai, nous devons chane le chemin donné dans l'application comme http: // localhost: 8080 / link / to / resource.xml vers http://10.0.2.2:8080/link/to/resource.xml
pradeep
@VikasPatidar pouvez-vous me dire où changer cette adresse en 10.0.2.2 dans mon code en tant que débutant
AndroidOptimist
1
par exemple, si votre URL est comme http://localhost:8080/Getdata.phpou http://127.0.0.1:8080/Getdata.phpalors vous devez la modifier comme utilisationhttp://10.0.2.2:8080/Getdata.php
Vikas Patidar
1
Remplacez 10.0.2.2par 10.0.3.2si vous utilisez Genymotion.
Jacob R
25

dans android

Remplacer: String webServiceUrl = "http://localhost:8080/Service1.asmx"

Avec : String webServiceUrl = "http://10.0.2.2:8080/Service1.asmx"

Bonne chance!

PhuocLuong
la source
1
où dans quel fichier?
user3475052
19

localhost et 127.0.0.1 sont les deux façons de dire «la machine actuelle». Donc, localhost sur votre PC est le PC et localhost sur Android est le téléphone. Étant donné que votre téléphone n'exécute pas de serveur Web, il refusera bien sûr la connexion.

Vous devez obtenir l'adresse IP de votre machine (utilisez ipconfig sur Windows pour le savoir) et l'utiliser au lieu de 127.0.0.1. Cela peut toujours ne pas fonctionner en fonction de la configuration de votre réseau / pare-feu. Mais c'est un sujet complètement différent.

skorulis
la source
pouvez-vous expliquer que plus en détail, avez besoin de chane l'adresse IP de mes machines
pradeep
2
Si vous tapez ipconfig, il vous indiquera l'adresse IP de votre machine. Il s'agit probablement d'une adresse IP privée pour votre réseau, elle ne sera donc accessible qu'à partir d'appareils qui sont sur le même réseau, donc le WIFI fonctionnera probablement, la 3G ne le sera probablement pas.
skorulis
@skorulis oui, nous devons définir l'URL de notre machine qui est différente de 127.0.0.1 car nous sommes connectés aux réseaux dans le code de notre application.
Ravi Yadav
Vous pouvez également définir une adresse IP spécifique pour votre ordinateur sur lequel le serveur est exécuté. Utilisez cette adresse IP dans votre application Android. C'est mieux car dans le cas où vous redémarrez votre routeur ou votre ordinateur, vous obtiendrez souvent une nouvelle adresse IP pour l'ordinateur et vous devrez la changer dans votre code.
DOUBL3P
12
  1. Ajouter une autorisation Internet dans le fichier Androidmanifest.xml

uses-permission android: name = "android.permission.INTERNET

  1. Ouvrir cmd dans Windows
  2. tapez "ipconfig" puis appuyez sur Entrée
  3. trouver l'adresse IPv4. . . . . . . . . . . : 192.168.XX
  4. utilisez cette URL " http: //192.168.XX: your_virtual_server_port / your_service.php "
Omid Rostami
la source
Merci, cela fonctionne pour l'émulateur NOX et Xammp.
Misam Mehmannavaz le
9

Il vous suffit d'utiliser votre adresse IP locale (mais réelle) et votre numéro de port comme ceci:

String webServiceUrl = "http://192.168.X.X:your_virtual_server_port/your_service.php"

Et assurez-vous d'avoir défini l'autorisation Internet dans le manifeste

<uses-permission android:name="android.permission.INTERNET" />

Monsieur Moustard
la source
4

Il vous suffit d'utiliser votre adresse IP locale: en utilisant la commande cmd "ipconfig" et le numéro de port de votre serveur comme ceci:

String webServiceUrl = " http: //192.168.XX: your_local_server_port / your_web_service_name.php "

Et assurez-vous que vous avez défini l'autorisation Internet dans le manifeste de votre projet

Ça marche parfaitement pour moi

Bonne chance

lotfi
la source
3

ça marche pour moi. J'utilise genymotion pour Run App.

1. Tout d'abord, j'ai vérifié mon adresse IP locale. goto command mode >> Et écrivez ipconfig. Exemple: Windows 10 >> recherchez cmd >> puis écrivez ipconfig. 2. Ensuite, obtenez vos informations IP locales >>> 3.Utilisez donnez votre IP localhost et votre IP de boîte virtuelle. Vous devez utiliser la boîte virtuelle ip pour genymotion.Consultez la capture d'écran ci-dessous. Vous pouvez vous sous n'importe quelle adresse IP sous le réseau hôte de virtualbox entrez la description de l'image ici

Shohel Rana
la source
2

Le remplacement de localhost par 10.0.2.2 est correct, mais vous pouvez également remplacer localhost par l'adresse IP de votre machine physique (c'est mieux à des fins de débogage). Ofc, si ip est fourni par dhcp, vous devrez le changer à chaque fois ...

Bonne chance!

Ancab
la source
0

La solution est très simple.

1 Ajouter l'autorisation Internet dans le fichier Androidmanifest.xml

<uses-permission android:name="android.permission.INTERNET" />

[2] Modifiez votre fichier httpd.config

Order Deny,Allow
Deny from all
Allow from 127.0.0.1

TO

Order Deny,Allow
Allow from all
Allow from 127.0.0.1

And restart your server.

[3] Et pas le plus impuissant. FAITES DE VOTRE RÉSEAU COMME VOTRE RÉSEAU À DOMICILE

Allez dans Panneau de configuration> Réseau et Internet> Centre Réseau et partage

Click on your Network and select HOME NETWORK

entrez la description de l'image ici

Mehul
la source