Extraer el cuerpo del mensaje de HttpResponse

Ok, he conectado correctamente a un servidor remoto y recibió una respuesta HTTP/1.1 200 OK y la respuesta se incluye en el objeto HttpResponse. ¿Ahora cómo consigo los datos en la respuesta fuera de él, específicamente el JSON que fue enviado del servidor?

Algo como esto: duplicar aquí: ¿Cómo analizar JSON de un Java HTTPResponse?

 HttpResponse response; // some response object BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8")); String json = reader.readLine(); JSONTokener tokener = new JSONTokener(json); JSONArray finalResult = new JSONArray(tokener); 

Bueno, puede obtener el cuerpo del HttpResponse llamando a getEntity() que devuelve un objeto de tipo HttpEntity . A continuación, desea consumir el InputStream que se devuelve desde el método getContent() de la HttpEntity . Lo haría así:

 public static String entityToString(HttpEntity entity) { InputStream is = entity.getContent(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is)); StringBuilder str = new StringBuilder(); String line = null; try { while ((line = bufferedReader.readLine()) != null) { str.append(line + "\n"); } } catch (IOException e) { throw new RuntimeException(e); } finally { try { is.close(); } catch (IOException e) { //tough luck... } } return str.toString(); } 

Utilice un BasicResponseHandler al llamar a httpclient.execute ()

 ResponseHandler <String> resonseHandler = new BasicResponseHandler(); String response = httpclient.execute(httpget, resonseHandler); 

También puede usar EntityUtils

 response = cl.execute(p); //cl is http client and p is the post request if(response.getStatusLine().getStatusCode()==200) { try { String resp_body = EntityUtils.toString(response.getEntity()); Log.v("resp_body", resp_body.toString()); JSONObject jsobj = new JSONObject(resp_body); } catch(Exception e) { Log.e("sometag",e.getMessage()); } } 

PS: Es posible que tenga que hacer esto en un subproceso independiente, aparte del subproceso principal, como en el doInBackground () de una AsyncTask o operación de red en la excepción de subproceso principal puede producirse.

  • Cómo obtener actualizaciones en vivo a través de JSON a listview
  • Cómo analizar la matriz json anidado en android utilizando volley biblioteca
  • XML vs JSON. ¿Cuál es mejor para almacenar un pequeño fragmento de datos?
  • Android Volley Null Pointer Exception
  • ¿Cómo puedo hacer una petición Volley JSONObject con un objeto personalizado como parámetro?
  • Convertir ArrayList <MyCustomClass> a JSONArray
  • Tiempo de viaje entre dos ubicaciones en Google Map Android API V2
  • ¿Cuál es el propósito básico de la anotación @SerializedName en android usando GSon
  • JsonMappingException: con el token START_ARRAY
  • Convertir XML a objeto JSON en Android
  • GCM Error = MissingRegistration enviando mensajes vía JSON
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.