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

  • Android: comprueba si la solicitud es GET o POST
  • ¿Cómo puedo cambiar CONTENT-TYPE de WebView # PostUrl ()?
  • Archivo de httpclient para Android: corrupción de datos y problemas de tiempo de espera
  • Enviar cookies con http post android
  • Volley JsonObjectRequest Post parámetros ya no funcionan
  • Android http post asynctask
  • Cómo interceptar datos POST en una vista web de android
  • Cómo agregar parámetros a HttpURLConnection mediante POST
  • El tiempo de espera de conexión HTTP no funciona
  • No se pudo escribir la solicitud: no se encontró HttpMessageConverter adecuado para el tipo de solicitud y el tipo de contenido
  • Twitter4j. Realizar consultas y filtrar mensajes por #hashtag
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.