java.net.ConnectException: localhost / 127.0.0.1: 8080 - Connessione rifiutata


97

Sto usando il server apache xampp per fornire risorse all'applicazione dalla mia macchina. Ma sto ottenendo l'errore di cui sopra.

Ho qualcosa su Google. indicando una possibile soluzione qui http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a

Qual è la soluzione per il problema di cui sopra?


1
Usa il loopback 10.0.2.2 sul tuo host locale (127.0.0.1). Puoi leggere di più al riguardo qui Android Emulator Networking
Dmytro Melnychuk

Risposte:


292

Poiché non hai specificato, sei connesso a un server dal dispositivo o dall'emulatore, quindi immagino che tu stia utilizzando la tua applicazione nell'emulatore.

Se stai facendo riferimento al tuo localhost sul tuo sistema dall'emulatore Android, devi usare http://10.0.2.2:8080/perché l'emulatore Android viene eseguito in una macchina virtuale quindi qui 127.0.0.1o localhostsarà l'indirizzo di loopback dell'emulatore.

Fare riferimento a: Emulator Networking


Sì, sto facendo esattamente la stessa cosa. Puoi spiegare in dettaglio. Dove cambiare l'indirizzo IP in 10.0.2.2. Questa è la cartella a cui sto tentando di accedere dal server xampp localhost: 8080 / aero
pradeep

1
Ho capito, dobbiamo cambiare il percorso fornito nell'applicazione come http: // localhost: 8080 / link / to / resource.xml a http://10.0.2.2:8080/link/to/resource.xml
pradeep

@VikasPatidar puoi dirmi dove cambiare questo indirizzo in 10.0.2.2 nel mio codice come un principiante
AndroidOptimist

1
ad esempio, se il tuo URL è simile http://localhost:8080/Getdata.phpo http://127.0.0.1:8080/Getdata.phpallora devi cambiarlo come usohttp://10.0.2.2:8080/Getdata.php
Vikas Patidar

1
Sostituisci 10.0.2.2con 10.0.3.2se stai utilizzando Genmony.
Jacob R

25

in Android

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

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

In bocca al lupo!


1
dove in quale file?
user3475052

19

localhost e 127.0.0.1 sono entrambi modi per dire "la macchina corrente". Quindi localhost sul tuo PC è il PC e localhost su Android è il telefono. Dal momento che il tuo telefono non esegue un server web, ovviamente rifiuterà la connessione.

Devi ottenere l'indirizzo IP della tua macchina (usa ipconfig su Windows per scoprirlo) e usalo invece di 127.0.0.1. Potrebbe non funzionare ancora a seconda di come sono configurati la rete / i firewall. Ma questo è un argomento completamente diverso.


puoi spiegarlo più in dettaglio, ho bisogno di cambiare l'indirizzo IP della mia macchina
pradeep

2
Se digiti ipconfig ti dirà l'indirizzo IP della tua macchina. Questo è molto probabilmente un indirizzo IP privato per la tua rete, quindi sarà accessibile solo dai dispositivi che si trovano sulla stessa rete, quindi il Wi-Fi probabilmente funzionerà, il 3G probabilmente no.
skorulis

@skorulis sì, dobbiamo impostare l'URL della nostra macchina che è diverso da 127.0.0.1 perché siamo connessi alle reti nel codice della nostra app.
Ravi Yadav

È inoltre possibile impostare un IP specifico per il computer su cui è in esecuzione il server. Usa questo IP nella tua app Android. È meglio perché nel caso in cui riavvii il router o il computer otterrai spesso un nuovo IP per il computer e dovresti cambiarlo nel tuo codice.
DOUBL3P


9

Devi solo usare il tuo indirizzo IP locale (ma reale) e il numero di porta in questo modo:

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

E assicurati di aver impostato l'autorizzazione per Internet all'interno del manifest

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




3

sta funzionando per me. Uso genmony per Run App.

1.In primo luogo mi è stato controllato il mio ip locale. goto modalità comando >> E scrivi ipconfig. Esempio: Windows 10 >> cerca cmd >> quindi scrivi ipconfig. 2. Quindi ottenere le informazioni sull'ip locale >>> 3. Utilizzare fornire l'ip localhost e l'ip della casella virtuale. Devi usare l'ip della casella virtuale per genmony.Controlla sotto lo screenshot. Puoi sotto qualsiasi ip nella rete host di virtualbox inserisci qui la descrizione dell'immagine


2

La sostituzione di localhost con 10.0.2.2 è corretta, ma puoi anche sostituire localhost con l'ip della tua macchina fisica (è meglio per scopi di debug). Ofc, se ip è fornito da dhcp dovresti cambiarlo ogni volta ...

In bocca al lupo!


0

La soluzione è molto semplice.

1 Aggiungere l'autorizzazione Internet nel file Androidmanifest.xml

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

[2] Cambia il tuo file 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] E il passo più impotente. RENDI LA TUA RETE COME RETE DI CASA

Vai a Pannello di controllo> Rete e Internet> Centro connessioni di rete e condivisione

Click on your Network and select HOME NETWORK

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.