AsyncHttpRequest POST no activar devoluciones de llamada (android-async-http por loopj)

Estoy tratando de enviar un POST a un servidor utilizando la biblioteca async http de loopj. El siguiente código es bastante estándar, pero no puedo conseguir que funcione.

He depurado bastante y he comprobado lo siguiente:

  • La dirección URL es correcta.
  • Los parámetros son correctos y se almacenan correctamente en la variable params.

Parece que cuando HttpResponse response = client.execute(request, context); Se llama en AsyncHttpRequest.makeRequest() la solicitud no contiene ningún parámetro:

EDIT: Después de mirar el código un poco más, parece que los parámetros POST pueden ser incluidos en la entidad o el grupo de encabezados.

Introduzca aquí la descripción de la imagen

Pero el verdadero problema es que no recibo ninguna de las devoluciones de llamada (ver código abajo). La instrucción if después de la llamada client.execute() nunca se llama (el punto de interrupción no se activa).

 RequestParams params = new RequestParams(); params.put("loginid", "user"); params.put("password", "pass"); params.put("deviceid", "deviceid"); AsyncHttpClient client = new AsyncHttpClient(); client.post(MDSettings.BASE_URL + "/user/login", params, new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { Log.d(MDSettings.TAG, "MDConnectionManager - login - response: " + response); singleton.connectionSuccessful(response, returnIndex); } @Override public void onFailure(Throwable error, String content) { Log.d(MDSettings.TAG, "MDConnectionManager - login - content: " + content); singleton.connectionFailed("Login Failed", error.getMessage(), returnIndex); } }); 

Estoy usando esta lib, ya que me permite enviar archivos que necesitaré más tarde en este proyecto. Si hay otro lib que hace lo mismo (y realmente funciona) que estaría bien conmigo.

Mi pregunta es: ¿Por qué no recibo ninguna devolución de llamada y cómo puedo solucionar esto? Dime cuando algo no está claro y voy a tratar de explicar con más profundidad.

4 Solutions collect form web for “AsyncHttpRequest POST no activar devoluciones de llamada (android-async-http por loopj)”

Parece que mi entrada de android.permission.INTERNET fue eliminada del archivo de manifiesto. Después de añadirlo de nuevo todo funcionó como se esperaba. Cada vez que algo no funciona, estaré revisando mis permisos.

Pruebe este simple fragmento.

Esto funciona en mi dispositivo.

Se imprime "Fallo" como POST no está permitido (estado HTTP: 405)

 AsyncHttpClient client = new AsyncHttpClient(); RequestParams params = new RequestParams(); params.put("q", "google"); client.post("http://google.com", params, new AsyncHttpResponseHandler(){ public void onSuccess(String arg0) { Log.d("TAG", "Success"); }; public void onFailure(Throwable arg0, String arg1) { Log.d("TAG", "Failure"); }; }); 

Bueno, yo no sé nada de esta biblioteca, pero ¿por qué no tratar de hacer algo similar a ella, utilizando AsyncTasks? Por ejemplo, puede subclasificar AsyncTask y proporcionarle URL que cargar. Otra forma es subclasificar AsyncTask y proporcionarle un objeto Callable. Este enfoque le permitirá generalizar esta clase haciéndola adecuada para realizar diferentes tareas de larga duración, no sólo las solicitudes de red. Ambos métodos pueden utilizar alguna interfaz con callbacks (onSuccess, onFailure). Y en onPostExecuteMethod puede determinar si se produjo un error durante la ejecución de la tarea o no y proporcionar callback neede.

Aquí en su código usted llama directamente el responsehanlder del método del poste. primero:

  client.post(MDSettings.BASE_URL + "/user/login", params, responseHandler); 

En la siguiente línea sólo tiene que añadir get método

  client.get(MDSettings.BASE_URL + "/user/login", new AsyncHttpResponseHandler() { @Override public void onSuccess(String response) { System.out.println(response); } }); 

Entonces u obtendrá respuesta de ella

  • No se puede tomar el progreso en la carga de archivos POST HTTP (Android)
  • Los caracteres especiales desaparecen en la solicitud POST desde un teléfono Android
  • Solicitud de Android POST utilizando HttpUrlConnection obtener "ya conectado"
  • Android cargar varios archivos al servidor a través de http post
  • ¿Cómo usar 'POST' Http Verbo de Woocommerce REST API en JAVA / Android?
  • Cómo enviar datos al sitio web mediante la aplicación android
  • Tipo de contenido de Retrofit de Android como aplicación / x-www-form-urlencoded
  • ¿Cómo puedo enviar JSon como BODY en una solicitud POST al servidor desde una aplicación de Android?
  • Cómo enviar caracteres unicode en un HttpPost en Android
  • Enviar cookies con http post android
  • La conexión a LocalHost / 10.0.2.2 de Android Emulator ha caducado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.