entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Error al enviar post a servidor rails en android

Que tal, tengo un problema para enviar peticiones en HTTP POST, estoy enviando un login a servidor rails desde android, envio post con Asyntasck pero el problema es el que me arroja el siguiente error:

org.apache.http.conn.ConnectTimeoutException: Connect to /172.188.1.124:3000 timed out

Aquí tengo para enviar el post:

public String url_root="172.188.1.124:3000";
public String url_user_path="/users/:id.json";
public String url_api_v1_register_path= "/api/v1/registrations.json";
public String url_api_v1_login_path= "/api/v1/sessions.json";
public String url_api_v1_logout_path= "/api/v1/sessions.json";

HttpClient client = new DefaultHttpClient();
    HttpConnectionParams.setConnectionTimeout(client.getParams(), 10000);
    HttpResponse response;
    String postURL=url_root + url_api_v1_login_path;
    JSONObject json = new JSONObject();
    try {

        HttpPost post = new HttpPost(postURL);
        json.put("email", email);
        json.put("password", password);
        //json.put("confirmable_password", password);
        StringEntity se = new StringEntity(json.toString());
        se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
        post.setEntity(se);
        response = client.execute(post);

        if (response != null) {
            InputStream in = response.getEntity().getContent();
            Log.e(TAG,"se recibió respuesta");
        } else{
            Log.e(TAG,"no se recibió respuesta");
        }
    } catch (Exception e) {
        e.printStackTrace();
        Log.e(TAG,"error en el post" + e);

    }
    return null;
}

Lo estoy haciendo desde un emulador en la misma máquina de forma local, no se si ese sea el problema.

1 Respuesta

0voto

white Puntos75880

te aseguraste de que la ip 172.188.1.124:3000 es accessible? puedes acceder desde el navegador de tu emulador android?

intenta cambiando esto:

url_root="172.188.1.124:3000";

por esto:

url_root="http://172.188.1.124:3000";

verifica que tengas en tu manifest los permisos para internet:

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

intenta en lugar de DefaultHttpClient() usar HttpURLConnection() en tu tarea asincrona

0voto

x4mp73r comentado

Ah ok, gracias @white, Todo lo que me has dicho si lo tenía, solo cambie DefaultHttpClient() y listo. :D Gracias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta