java.net.ConnectException: localhost / 127.0.0.1: 8080 - Sambungan ditolak

97

Saya menggunakan server apache xampp untuk melayani sumber daya ke aplikasi dari mesin saya. Tetapi saya mendapatkan kesalahan di atas.

Saya punya sesuatu di google. menunjukkan solusi yang mungkin di sini http://groups.google.com/group/android-beginners/browse_thread/thread/599a06416fb37b4a

Apa solusi untuk masalah di atas?

pradeep
sumber
1
Gunakan loopback 10.0.2.2 ke localhost Anda (127.0.0.1). Anda dapat membaca lebih lanjut tentang itu di sini Android Emulator Networking
Dmytro Melnychuk

Jawaban:

292

Karena Anda belum menentukan Anda terhubung ke server dari perangkat atau emulator jadi saya kira Anda menggunakan aplikasi Anda di emulator.

Jika Anda merujuk localhost Anda di sistem Anda dari emulator Android maka Anda harus menggunakan http://10.0.2.2:8080/Karena emulator Android berjalan di Mesin Virtual, oleh karena itu di sini 127.0.0.1atau localhostakan menjadi alamat loopback emulator itu sendiri.

Lihat: Jaringan Emulator

Vikas Patidar
sumber
Ya, sebenarnya saya melakukan hal yang sama. Bisakah kamu menjelaskan secara rinci. Di mana mengubah alamat ip menjadi 10.0.2.2. Ini adalah folder yang saya coba akses dari server xampp localhost: 8080 / aero
pradeep
1
Saya mengerti, kita harus mengubah jalur yang diberikan dalam aplikasi seperti http: // localhost: 8080 / link / to / resource.xml ke http://10.0.2.2:8080/link/to/resource.xml
pradeep
@VikasPatidar dapatkah kamu memberi tahu saya di mana harus mengubah alamat ini menjadi 10.0.2.2 dalam kode saya sebagai pemula
AndroidOptimist
1
misalnya jika URL Anda seperti http://localhost:8080/Getdata.phpatau http://127.0.0.1:8080/Getdata.phpkemudian Anda harus mengubahnya saat digunakanhttp://10.0.2.2:8080/Getdata.php
Vikas Patidar
1
Ganti 10.0.2.2dengan 10.0.3.2jika Anda menjalankan Genymotion.
Jacob R
25

di android

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

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

Semoga berhasil!

PhuocLuong
sumber
1
dimana di file yang mana
pengguna3475052
19

localhost dan 127.0.0.1 adalah dua cara untuk mengatakan 'mesin saat ini'. Jadi localhost di PC Anda adalah PC dan localhost di android adalah ponsel. Karena ponsel Anda tidak menjalankan server web, tentu saja itu akan menolak koneksi.

Anda perlu mendapatkan alamat IP mesin Anda (gunakan ipconfig di windows untuk mengetahuinya) dan gunakan itu sebagai pengganti 127.0.0.1. Ini mungkin masih tidak berfungsi tergantung pada bagaimana jaringan / firewall Anda diatur. Tapi itu topik yang sama sekali berbeda.

skorulis
sumber
dapatkah Anda menjelaskannya secara lebih detail, apakah perlu mengubah alamat IP mesin saya
pradeep
2
Jika Anda mengetik ipconfig, itu akan memberi tahu Anda alamat IP mesin Anda. Kemungkinan besar ini adalah alamat IP pribadi untuk jaringan Anda sehingga hanya dapat diakses dari perangkat yang berada di jaringan yang sama sehingga WIFI mungkin akan berfungsi, 3G mungkin tidak akan berfungsi.
skorulis
@skorulis ya kita perlu mengatur url mesin kita yang berbeda dari 127.0.0.1 karena kita terhubung ke jaringan dalam kode aplikasi kita.
Ravi Yadav
Anda juga dapat mengatur IP tertentu untuk komputer Anda yang menjalankan server. Gunakan IP ini di Aplikasi Android Anda. Itu lebih baik karena jika Anda me-restart router atau komputer Anda, Anda akan sering mendapatkan IP baru untuk komputer dan Anda harus mengubahnya dalam kode Anda.
DOUBL3P
11
  1. Tambahkan izin Internet di file Androidmanifest.xml

izin penggunaan android: name = "android.permission.INTERNET

  1. Buka cmd di windows
  2. ketik "ipconfig" lalu tekan enter
  3. temukan Alamat IPv4. . . . . . . . . . . : 192.168.XX
  4. gunakan URL ini " http: //192.168.XX: your_virtual_server_port / your_service.php "
Omid Rostami
sumber
Terima kasih, ini berfungsi untuk emulator NOX dan Xammp.
Misam Mehmannavaz
9

Anda hanya perlu menggunakan alamat IP lokal (tapi asli) dan nomor port seperti ini:

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

Dan pastikan Anda mengatur izin internet dalam manifes

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

Tuan Moustard
sumber
3

itu bekerja untuk saya. Saya menggunakan genymotion untuk Run App.

1. Pertama saya diperiksa ip lokal saya. goto mode perintah >> Dan tulis ipconfig. Contoh: Windows 10 >> cari cmd >> lalu Tulis ipconfig. 2. Kemudian dapatkan informasi ip lokal Anda >>> 3.Gunakan berikan ip localhost Anda dan ip kotak virtual. Anda perlu menggunakan ip kotak virtual untuk genymotion. Lihat gambar di bawah ini. Anda dapat Anda di bawah ip manapun di bawah jaringan host virtualbox masukkan deskripsi gambar di sini

Shohel Rana
sumber
2

Mengganti localhost dengan 10.0.2.2 sudah benar, tetapi Anda juga dapat mengganti localhost dengan ip mesin fisik Anda (lebih baik untuk tujuan debug). Tentu, jika ip disediakan oleh dhcp Anda harus mengubahnya setiap kali ...

Semoga berhasil!

ancab
sumber
0

Solusinya sangat sederhana.

1 Tambahkan izin Internet di file Androidmanifest.xml

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

[2] Ubah file httpd.config Anda

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] Dan langkah paling impoten. Jadikan JARINGAN ANDA SEBAGAI JARINGAN RUMAH

Buka Panel Kontrol> Jaringan dan Internet> Jaringan dan Pusat Berbagi

Click on your Network and select HOME NETWORK

masukkan deskripsi gambar di sini

Mehul
sumber