java.net.ConnectException: localhost / 127.0.0.1: 8080 - Bağlantı reddedildi


98

Makinemden uygulamaya kaynak sunmak için xampp apache sunucusunu kullanıyorum. Ama yukarıdaki hatayı alıyorum.

Google'da bir şey buldum. burada olası çözüme işaret ediyor http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a

Yukarıdaki sorunun çözümü nedir?


1
Yerel ana makinenize 10.0.2.2 geridöngü kullanın (127.0.0.1). Bununla ilgili daha fazla bilgiyi buradan okuyabilirsiniz Android Emulator Networking
Dmytro Melnychuk

Yanıtlar:


294

Belirtmediğiniz için cihazdan veya emülatörden bir sunucuya bağlısınız yani sanırım uygulamanızı emülatörde kullanıyorsunuz.

Sisteminizde yerel ana makinenizi Android öykünücüsünden yönlendiriyorsanız, kullanmanız gerekir http://10.0.2.2:8080/çünkü Android öykünücüsü bir Sanal Makinede çalışır, bu nedenle burada 127.0.0.1veya localhostöykünücünün kendi geri döngü adresi olacaktır.

Bakınız: Emulator Networking


Evet, kesinlikle aynı şeyi yapıyorum. Ayrıntılı olarak açıklayabilir misin? IP adresi 10.0.2.2 olarak nerede değiştirilir. Bu, xampp server localhost'tan
pradeep


@VikasPatidar u gibi bir acemi değilim benim kodunda 10.0.2.2 için bu adresi değiştirmek için nereye söyle lütfen edebilirsiniz
AndroidOptimist

1
ör. URL'niz http://localhost:8080/Getdata.phphttp://127.0.0.1:8080/Getdata.phphttp://10.0.2.2:8080/Getdata.php
gibiyse

1
Değiştir 10.0.2.2ile 10.0.3.2size Genymotion üzerinde çalıştırıyorsanız.
Jacob R

26

androidde

Değiştirin: String webServiceUrl = "http://localhost:8080/Service1.asmx"

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

İyi şanslar!


1
hangi dosyada nerede?
user3475052

19

localhost ve 127.0.0.1, 'mevcut makine' demenin her iki yolu. Yani PC'nizdeki localhost PC'dir ve android'deki localhost ise telefondur. Telefonunuz bir web sunucusu çalıştırmadığından, elbette bağlantıyı reddedecektir.

Makinenizin IP adresini almanız (öğrenmek için Windows'ta ipconfig kullanın) ve 127.0.0.1 yerine bunu kullanmanız gerekir. Bu, ağınızın / güvenlik duvarlarınızın nasıl kurulduğuna bağlı olarak yine de çalışmayabilir. Ancak bu tamamen farklı bir konu.


u daha ayrıntılı olarak, benim makineleri chane IP adresi ihtiyacını yapmak açıklayabiliriz
pradeep

2
İpconfig yazarsanız, size makinenizin IP adresini söyleyecektir. Bu, büyük olasılıkla ağınız için özel bir IP adresidir, bu nedenle yalnızca aynı ağdaki cihazlardan erişilebilir, bu nedenle WIFI muhtemelen çalışacaktır, 3G muhtemelen çalışmayacaktır.
skorulis

@skorulis evet makinemizin 127.0.0.1'den farklı url'sini ayarlamamız gerekiyor çünkü uygulama kodumuzdaki ağlara bağlıyız.
Ravi Yadav

Ayrıca, sunucunun çalıştığı bilgisayarınız için belirli bir IP de ayarlayabilirsiniz. Bu IP'yi Android Uygulamanızda kullanın. Bu daha iyi çünkü yönlendiricinizi veya bilgisayarınızı yeniden başlatmanız durumunda genellikle bilgisayar için yeni bir IP alacaksınız ve bunu kodunuzda değiştirmek zorunda kalacaksınız.
DOUBL3P


9

Yerel (ancak gerçek) IP adresinizi ve bağlantı noktası numaranızı aşağıdaki gibi kullanmanız gerekir:

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

Manifest içinde internet iznini ayarladığınızdan emin olun

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




3

benim için çalışıyor. Run App için genymotion kullanıyorum.

1. İlk olarak yerel IP'mi kontrol ettim. goto komut modu >> Ve ipconfig yazın. Örnek: Windows 10 >> arama cmd >> ardından ipconfig yazın. 2. Ardından yerel ip bilgilerinizi alın >>> 3. localhost ipinizi ve sanal kutunuzu ip olarak verin. Genymotion için sanal kutu ip kullanmanız gerekir. Ekran görüntüsünü kontrol edin. Virtualbox host network altında herhangi bir ip'in altında yapabilirsiniz görüntü açıklamasını buraya girin


2

Localhost'u 10.0.2.2 ile değiştirmek doğrudur, ancak localhost'u fiziksel makinenizin IP'si ile de değiştirebilirsiniz (hata ayıklama amacıyla daha iyidir). Ofc, ip dhcp tarafından sağlanmışsa, her seferinde değiştirmeniz gerekir ...

İyi şanslar!


0

Çözüm çok basit.

1 Androidmanifest.xml dosyasına İnternet izni ekleyin

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

[2] httpd.config dosyanızı değiştirin

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] Ve en aciz adım. AĞINIZI EV AĞINIZ OLUŞTURUN

Denetim Masası> Ağ ve İnternet> Ağ ve Paylaşım Merkezi'ne gidin

Click on your Network and select HOME NETWORK

görüntü açıklamasını buraya girin

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.