Android - Conexión a una red local

 
Vista:
sin imagen de perfil

Conexión a una red local

Publicado por Patricio (2 intervenciones) el 27/07/2017 05:54:04
Buenas.... Lo que pasa es que estoy desarrollando una aplicacion con Android Studio y necesito insertar los datos ingresados a mi base de datos MySQL por medio de WebServices, ubicado en mi red local, al momento de iniciar la aplicacion e ingresar los datos no me lanza ningun error, el unico error que lanza es:

java.net.ConnectException: failed to connect to /192.168.0.4 (port 80): connect failed: ETIMEDOUT (Connection timed out)
at libcore.io.IoBridge.connect(IoBridge.java:124)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
at java.net.Socket.connect(Socket.java:882)
at com.android.okhttp.internal.Platform.connectSocket(Platform.java:174)
at com.android.okhttp.Connection.connect(Connection.java:1222)
at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:395)
at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:298)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:399)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:110)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:221)
at com.example.pato11.geoalertar.BackgroundWorker.doInBackground(BackgroundWorker.java:53)
at com.example.pato11.geoalertar.BackgroundWorker.doInBackground(BackgroundWorker.java:24)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
at libcore.io.Posix.connect(Native Method)
at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
at libcore.io.IoBridge.connect(IoBridge.java:122)

eh buscado por todos lados y las soluciones que existen no funcionan, desde ya gracias :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Conexión a una red local

Publicado por Pol (5 intervenciones) el 27/07/2017 06:59:03
Seria de ayuda ver el codigo!! ademas ya has probado el webservice desde un navegador?? para ver si funciona, connect failed: ETIMEDOUT indica que tardo mucho en responder eso puede pasar si no funciona el servidor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conexión a una red local

Publicado por Patricio (2 intervenciones) el 27/07/2017 14:35:39
La verdad ya probé el WebServices en el navegador y me inserta perfectamente.....

Este es el código donde hago la conexión:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
public class BackgroundWorker extends AsyncTask<String,Void,String> {
    Context context;
    AlertDialog alertDialog;
 
    public BackgroundWorker(Context ctx){
        this.context = ctx;
    }
 
    @Override
    protected String doInBackground(String... params) {
 
        String registrar_url = "http://192.168.0.4/APPGeoAlertAR/Registrar.php";
        String type = params[0];
 
        if (type.equals("registrar")) {
 
            String patente = params[1];
            String direccion = params[2];
            String latitud = params[3];
            String longitud = params[4];
 
            try {
 
                URL url = new URL(registrar_url);
                HttpURLConnection httpURLConnection = (HttpURLConnection)url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                httpURLConnection.setDoInput(true);
 
                OutputStream outputStream = httpURLConnection.getOutputStream();
 
                httpURLConnection.connect();
 
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));
 
                String post = URLEncoder.encode("lugarRobo","UTF-8")+"="+URLEncoder.encode(direccion,"UTF-8")+"&"+URLEncoder.encode("ultimaLat","UTF-8")+"="+URLEncoder.encode(latitud,"UTF-8")+"&"+URLEncoder.encode("ultimaLon","UTF-8")+"="+URLEncoder.encode(longitud,"UTF-8")+"&"+URLEncoder.encode("idPropietario","UTF-8")+"="+URLEncoder.encode(patente,"UTF-8");
 
                bufferedWriter.write(post);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();
 
                InputStream inputStream = httpURLConnection.getInputStream();
 
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
 
                String result = "";
                String line = "";
 
                while ((line = bufferedReader.readLine()) != null){
                    result += line;
                }
 
                bufferedReader.close();
                httpURLConnection.disconnect();
                return result;
 
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
 
    @Override
    protected void onPreExecute() {
        alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.setTitle("Login Status");
    }
 
    @Override
    protected void onPostExecute(String result) {
        alertDialog.setMessage(result);
        alertDialog.show();
    }
 
    @Override
    protected void onProgressUpdate(Void... values) {
        super.onProgressUpdate(values);
    }
}

Disculpen por no haber subido el codigo antes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Conexión a una red local

Publicado por Pol (5 intervenciones) el 27/07/2017 16:50:02
Buen dia la verdad es que soy nuevo en java pero recien hice una app con webservice y yo lo que hacia en este caso, colocaba un TextView y en ese imprimia si habia un error de conexion

Sustituia:
1
2
3
4
5
catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

Por esto
1
2
3
4
5
6
7
catch (MalformedURLException e) {
textView.setText ( e.toString( ) );
} catch (IOException e) {
textView.setText ( e.toString( ) );
} catch (Exception e) {
textView.setText ( e.toString( ) );
}

Intenta haciendo esto para ver si no esta fallando en el try, algun detalle como acceso denegado al internet, falla en los archivos etc...
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Conexión a una red local

Publicado por Carlos Ismael (38 intervenciones) el 02/08/2017 05:41:07
no te falto agregar el signo de interrogación y ya despues lo demas inserta.php?nombre=adrian
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Conexión a una red local

Publicado por Pol (5 intervenciones) el 15/08/2017 19:41:39
No porque esta usando metodo POST el signo es para GET :/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar