MeteoriteDB

Log | Files | Refs | README

JsonTask.java (1842B)


      1 package com.example.project_assignment;
      2 
      3 import android.os.AsyncTask;
      4 
      5 import java.io.BufferedReader;
      6 import java.io.IOException;
      7 import java.io.InputStream;
      8 import java.io.InputStreamReader;
      9 import java.net.HttpURLConnection;
     10 import java.net.MalformedURLException;
     11 import java.net.URL;
     12 
     13 public class JsonTask extends AsyncTask<String, String, String> {
     14 
     15     public interface JsonTaskListener {
     16         void onPostExecute(String json);
     17     }
     18 
     19     private HttpURLConnection connection = null;
     20     private BufferedReader reader = null;
     21     private final JsonTaskListener listener;
     22 
     23     @SuppressWarnings("deprecation")
     24     public JsonTask(JsonTaskListener listener) {
     25         this.listener = listener;
     26     }
     27 
     28     protected String doInBackground(String... params) {
     29         try {
     30             URL url = new URL(params[0]);
     31             connection = (HttpURLConnection) url.openConnection();
     32             connection.connect();
     33 
     34             InputStream stream = connection.getInputStream();
     35             reader = new BufferedReader(new InputStreamReader(stream));
     36 
     37             StringBuilder builder = new StringBuilder();
     38             String line;
     39             while ((line = reader.readLine()) != null && !isCancelled()) {
     40                 builder.append(line).append("\n");
     41             }
     42             return builder.toString();
     43         } catch (IOException e) {
     44             e.printStackTrace();
     45         } finally {
     46             if (connection != null) {
     47                 connection.disconnect();
     48             }
     49             try {
     50                 if (reader != null) {
     51                     reader.close();
     52                 }
     53             } catch (IOException e) {
     54                 e.printStackTrace();
     55             }
     56         }
     57         return null;
     58     }
     59 
     60     @Override
     61     protected void onPostExecute(String json) {
     62         listener.onPostExecute(json);
     63     }
     64 }