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 }