Pertanyaan org.apache.http.conn.HttpHostConnectException: Koneksi ke http: // localhost ditolak di android


Saya membuat aplikasi yang mengunggah gambar ke server dan memperbarui databasenya ke server di android saat mengeksekusinya, ini menunjukkan kesalahan

Connection to http://localhost refused 

dan banyak lagi kesalahan, saya meneliti masalah ini dan menemukan alih-alih memberikan koneksi URL

http://localhost/... provide the link as http://10.0.2.2/... 

dan saya melakukannya tetapi masalahnya sama lebih banyak kesalahan ada di sini:

E/org.apache.http.conn.HttpHostConnectException(4318): Connection to http://localhost refused
E/org.apache.http.conn.HttpHostConnectException(4318): org.apache.http.conn.HttpHostConnectException: Connection to http://localhost refused
E/org.apache.http.conn.HttpHostConnectException(4318):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183)
E/org.apache.http.conn.HttpHostConnectException(4318):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
E/org.apache.http.conn.HttpHostConnectException(4318):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
E/org.apache.http.conn.HttpHostConnectException(4318):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
E/org.apache.http.conn.HttpHostConnectException(4318):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
E/org.apache.http.conn.HttpHostConnectException(4318):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
E/org.apache.http.conn.HttpHostConnectException(4318):  at com.example.android.photobyintent.ViewRecipients.uploadFile(ViewRecipients.java:325)
E/org.apache.http.conn.HttpHostConnectException(4318):  at com.example.android.photobyintent.ViewRecipients$1.run(ViewRecipients.java:238)
E/org.apache.http.conn.HttpHostConnectException(4318):  at java.lang.Thread.run(Thread.java:856)
E/org.apache.http.conn.HttpHostConnectException(4318): Caused by: java.net.ConnectException: failed to connect to /127.0.0.1 (port 80): connect failed: ECONNREFUSED (Connection refused)
E/org.apache.http.conn.HttpHostConnectException(4318):  at libcore.io.IoBridge.connect(IoBridge.java:114)
E/org.apache.http.conn.HttpHostConnectException(4318):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
E/org.apache.http.conn.HttpHostConnectException(4318):  at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
E/org.apache.http.conn.HttpHostConnectException(4318):  at java.net.Socket.connect(Socket.java:842)
E/org.apache.http.conn.HttpHostConnectException(4318):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
E/org.apache.http.conn.HttpHostConnectException(4318):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144)
E/org.apache.http.conn.HttpHostConnectException(4318):  ... 8 more
E/org.apache.http.conn.HttpHostConnectException(4318): Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused)
E/org.apache.http.conn.HttpHostConnectException(4318):  at libcore.io.Posix.connect(Native Method)
E/org.apache.http.conn.HttpHostConnectException(4318):  at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85)
E/org.apache.http.conn.HttpHostConnectException(4318):  at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
E/org.apache.http.conn.HttpHostConnectException(4318):  at libcore.io.IoBridge.connect(IoBridge.java:112)
E/org.apache.http.conn.HttpHostConnectException(4318):  ... 13 more

kode untuk unggahan file adalah:

public int uploadFile(ArrayList<String> sourceFileUri, String info, String latitude, String longitude, String id) throws IOException {
        try {
            HttpClient httpClient = new DefaultHttpClient();
            HttpContext localContext = new BasicHttpContext();
            HttpPost httpPost = new HttpPost("http://10.0.2.2/deliverysystem/order/add");

            MultipartEntity entity = new MultipartEntity(
                    HttpMultipartMode.BROWSER_COMPATIBLE);

            entity.addPart("returnformat", new StringBody("json"));
            System.out.println(sourceFileUri.size());
            for(int i=0;i<sourceFileUri.size();i++){
                String sourceFile = sourceFileUri.get(i);
                entity.addPart("uploaded_file"+(i+1), new FileBody(new File(sourceFile)));
            }

            entity.addPart("fld_delivery_id", new StringBody(id));
            entity.addPart("fld_delivery_location", new StringBody(info));
            entity.addPart("fld_latitude", new StringBody(latitude));
            entity.addPart("fld_longitude", new StringBody(longitude));
            httpPost.setEntity(entity);
            HttpResponse response = httpClient.execute(httpPost, localContext);
            BufferedReader reader = new BufferedReader(
                    new InputStreamReader(
                            response.getEntity().getContent(), "UTF-8"));

            String sResponse = reader.readLine();
            return 1;
        } catch (Exception e) {
            if (dialog.isShowing())
                dialog.dismiss();

            Log.e(e.getClass().getName(), e.getMessage(), e);
            return 1;
        }

       }

sementara debugging kode mencapai hingga:

httpPost.setEntity(entity);

dan itu menunjukkan pengecualian setelah baris ini yaitu pada pernyataan ini:

HttpResponse response = httpClient.execute(httpPost, localContext);

Bisakah ada yang membantu saya dalam hal ini?


28
2017-12-31 08:31


asal


Jawaban:


jika Anda menggunakan emulator untuk menjalankan aplikasi Anda untuk server lokal. sebutkan lokal ipsebagai 10.0.2.2 dan harus memberikan izin Internet ke aplikasi Anda:

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

22
2018-03-30 17:40



<uses-permission android:name="android.permission.INTERNET"/> tambahkan tag ini di atas ke AndroidManifest.xml dari proyek Android Anda , dan itu akan baik-baik saja.


13
2017-12-05 07:45



http://localhost

Host di atas sudah ditempati oleh emulator di mana Anda menjalankan kode. Jika Anda ingin mengakses host lokal komputer Anda daripada menggunakan Alamat IP sebagai http://10.0.2.2:8080/.

Untuk lebih jelasnya, silakan lihat ini link.


7
2017-12-31 08:35



saya menghadapi masalah yang sama persis dan saya membuat perubahan berikut ke URL saya setelah itu berfungsi dengan baik ..

Dari:

http://localhost/Image4android/get_all_images.php

Untuk:

http://192.168.1.2/Image4android/get_all_images.php

where the ip: 192.168.1.2 is IPv4 address. In windows Run > CMD > Ipconfig

4
2017-09-20 03:11



coba tambahkan izin di luar tag aplikasi manifes selain jawaban yang disebutkan di atas untuk mengubah localhost ke 10.0.2.2:8080


3
2017-12-31 10:58



untuk penggunaan server wamp 10.0.2.2  untuk host lokal misalnya 10.0.2.2/phpMyAdmin

dan untuk penggunaan kucing jantan 10.0.2.2:8080/server


3
2017-10-03 10:07



Ketika Anda menguji dengan perangkat Anda ingin menambahkan alamat ip PC Anda.

di pc dijalankan dalam cmd Ipconfig

di terminal menjalankan Ubuntu ifconfig

Kemudian gunakan "http://your_pc_ip_address:8080/register" insted menggunakan "http://10.0.2.2:8080/register"

in my pc = 192.168.1.3

dan juga menambahkan izin internet ke Manifest

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

2
2018-05-03 02:53



Silakan periksa bahwa Anda menjalankan perangkat android melalui jaringan yang sama. Ini akan menyelesaikan masalah. Selamat bersenang-senang!!!


1
2018-03-03 06:36



Saya menggunakan PHP untuk webservice dan Android 4.x. perangkat untuk menghubungkan ke jejaring. Saya memiliki masalah serupa di mana, menggunakan 10.0.2.2 bekerja dengan baik dengan emulator tetapi gagal terhubung dari perangkat. Solusi yang berhasil untuk saya adalah: Temukan IP komputer Anda ... katakan 192.168.0.103 Temukan port apache Anda ... katakan 8080 Sekarang buka httpd.conf dan cari baris berikut Listen 127.0.0.1:8080 Setelah baris ini tambahkan berikut Listen 192.168.0.103:8080 Itu dia. Sekarang jika Anda gunakan 192.168.0.103:8080 dalam kode android Anda, itu akan terhubung !!


1
2018-02-20 09:31



Saya memiliki masalah serupa, kemudian saya menemukan bahwa wifi tidak terhubung di ponsel cerdas saya. Setelah saya menyalakan wifi dan terhubung ke jaringan yang sama (dengan laptop saya), ada masalah lain - firewall laptop menghalangi koneksi masuk. Setelah saya memperbaiki firewall, saya dapat berkomunikasi dari aplikasi android saya dengan layanan web yang berjalan di laptop.


0
2018-06-02 06:44



Salah satu hal mendasar dan sederhana yang mengarah ke kesalahan ini adalah: Tidak ada koneksi internet

Aktifkan Sambungan Internet perangkat Anda terlebih dahulu.

(Mungkin kita akan lupa melakukannya)


0
2017-07-22 09:58