studio org importar httppost example defaulthttpclient android apache connection

importar - org.apache.http.conn.HttpHostConnectException: la conexión a http:// localhost se negó en android



importar httpclient android studio (13)

Estoy haciendo una aplicación que carga imágenes al servidor y actualiza su base de datos al servidor en Android mientras se ejecuta, muestra un error

Connection to http://localhost refused

y muchos más errores, investigué este problema y encontré en lugar de proporcionar la conexión URL

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

y lo hice pero el problema es el mismo error más aquí:

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

el código para subir archivos es:

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; } }

mientras se depura el código alcanza hasta:

httpPost.setEntity(entity);

y muestra una excepción después de esta línea, es decir, en esta declaración:

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

¿Alguien podría ayudarme con esto?


Compruebe que está ejecutando el dispositivo Android en la misma red. Esto solucionará el problema. ¡¡¡que te diviertas!!!


Cuando prueba con un dispositivo, desea agregar la dirección IP de su PC.

en la pc se ejecuta en cmd Ipconfig

en el terminal de ejecución ubuntu ifconfig

A continuación, utilice "http://your_pc_ip_address:8080/register" de usar "http://10.0.2.2:8080/register"

in my pc = 192.168.1.3

y también agregue el permiso de internet para Manifest

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


Dos soluciones para este error:

1. agrega este permiso en tu androidManifest.xml de tu proyecto de Android

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

2. Encienda primero la conexión a Internet de su dispositivo.


Estaba enfrentando exactamente el mismo problema e hice los siguientes cambios a mi URL después de lo cual funcionó perfectamente bien.

De:

http://localhost/Image4android/get_all_images.php

A:

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


Estoy usando PHP para el servicio web y Android 4.x. dispositivo para conectarse al servicio web. Tuve un problema similar en el que usar 10.0.2.2 funcionó bien con el emulador pero no se pudo conectar desde el dispositivo. La solución que funcionó para mí es: Encuentre la IP de su computadora ... digamos 192.168.0.103 Busque el puerto de su apache ... digamos 8080 Ahora abra httpd.conf y ubique la siguiente línea Escuche 127.0.0.1:8080 Después de agregar esta línea Siguiendo Listen 192.168.0.103:8080 Eso es todo. ¡Ahora si usas 192.168.0.103:8080 en tu código de Android, se conectará!


Tuve un problema similar, luego descubrí que el wifi no estaba conectado en mi teléfono inteligente. Después de que encendí el wifi y me conecté a la red similar (con mi computadora portátil), hubo otro problema: el firewall de la computadora portátil estaba bloqueando las conexiones entrantes. Una vez que arreglé el firewall, pude comunicarme desde mi aplicación de Android con el servicio web que se ejecuta en la computadora portátil.


Una de las cosas básicas y simples que conducen a este error es: Sin conexión a Internet

Encienda primero la conexión a Internet de su dispositivo.

(Puede ser que nos olvidemos de hacerlo)


intente agregar el permiso fuera de la etiqueta de la aplicación del manifiesto, además de las respuestas antes mencionadas de cambiar localhost a 10.0.2.2:8080


para el uso del servidor 10.0.2.2 para host local ej. 10.0.2.2/phpMyAdmin

y para el uso de tomcat 10.0.2.2:8080/server


si está usando un emulador para ejecutar su aplicación para el servidor local. mencione la dirección ip local como 10.0.2.2 y tenga que dar permiso de Internet a su aplicación:

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


use 127.0.0.1 lugar de localhost


<uses-permission android:name="android.permission.INTERNET"/> agregue esta etiqueta arriba en AndroidManifest.xml de su proyecto Android, y estará bien.


http://localhost

El host anterior ya está ocupado por el emulador en el que está ejecutando el código. Si desea acceder al host local de su computadora, use la dirección IP como http://10.0.2.2:8080/ .

Para más detalles, consulte este link .