extract message body out of HttpResponse extract message body out of HttpResponse android android

extract message body out of HttpResponse


something like this: duplicate here : How do I parse JSON from a Java HTTPResponse?

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


Well, you can get the body of the HttpResponse by calling getEntity() which returns an object of type HttpEntity. You will then want to consume the InputStream that is returned from the getContent() method of the HttpEntity. I would do it like this:

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();}


You may also use EntityUtils

response = cl.execute(p); //cl is http client and p is the post requestif(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 : You may have to do this in a separate thread, other than the main thread, like in the doInBackground() of an AsyncTask or Network operation on main thread exception may occur.