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.