-2

Please fins Main.java code below

public class Main extends Activity implements OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    findViewById(R.id.my_button).setOnClickListener(this);
}

@Override
public void onClick(View arg0) {
    Button b = (Button)findViewById(R.id.my_button);
    b.setClickable(false);
    new LongRunningGetIO().execute();
}

private class LongRunningGetIO extends AsyncTask <Void, Void, String> {

    protected String getASCIIContentFromEntity(HttpEntity entity) throws IllegalStateException, IOException {
       InputStream in = entity.getContent();
         StringBuffer out = new StringBuffer();
         int n = 1;
         while (n>0) {
             byte[] b = new byte[4096];
             n =  in.read(b);
             if (n>0) out.append(new String(b, 0, n));
         }
         return out.toString();
    }

    @Override
    protected String doInBackground(Void... params) {
         HttpClient httpClient = new DefaultHttpClient();
         HttpContext localContext = new BasicHttpContext();
         HttpGet httpGet = new HttpGet("http://191.166.1.88:2000");
         String text = null;
         try {
               HttpResponse response = httpClient.execute(httpGet, localContext);
               HttpEntity entity = response.getEntity();
               text = getASCIIContentFromEntity(entity);
         } catch (Exception e) {
             return e.getLocalizedMessage();
         }
         return text;
    }   

    protected void onPostExecute(String results) {
        if (results!=null) {
            EditText et = (EditText)findViewById(R.id.my_edit);
            et.setText(results);
        }
        Button b = (Button)findViewById(R.id.my_button);
        b.setClickable(true);
      }
     }
     }

I am getting the JSON data from REST API, it is as shown below

 {"Tm":{"Time": "Mon Nov 20 12:45:59 IST 2015"},"Name":
 {"Host": "u1", "IP": "190.166.169.137"},"Speed":{"cpu":   
   2494.259033203125}}

How to extract only Nama of Host that is "u1" and display in text box in android. I am new to it please help

poo
  • 1
  • 4

1 Answers1

0

Change your doInBackground to this also make the return type of doInBackground to JSONObject from String.

 try {
            URL url = new URL("http://191.166.1.88:2000");
            HttpURLConnection connection = (HttpURLConnection)url.openConnection();
            connection.connect();
            System.out.println(connection.getResponseMessage());

            responseCode = connection.getResponseCode();
            if(responseCode == HttpURLConnection.HTTP_OK) {
                InputStream inputStream = connection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                String responseData = "", data="";
                while ((data = reader.readLine()) != null){
                    responseData += data + "\n";
                }
                jsonResponse = new JSONObject(responseData);

            } else {
                //Not Success
            }
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return jsonResponse;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return jsonResponse;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return jsonResponse;
        }
        return jsonResponse;

And the onPostExecute to this

 @Override
    protected void onPostExecute(JSONObject result) {
        if(result != null) {
             JSONObject name =result.getJSONObject("Name"); 
             String host = name.getString("Host");
        }
    }
Sunil Sunny
  • 3,949
  • 4
  • 23
  • 53