package com.example.app_10p5; import android.os.AsyncTask; import org.json.JSONObject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import java.util.Map; import javax.net.ssl.HttpsURLConnection; /** * Created by beaus on 30/04/2016. */ public class NetworkThread extends AsyncTask { public ASyncResponse delegate = null; private URL mUrl; private HashMap mParam; NetworkThread(URL url, HashMap param){ mUrl = url; mParam = param; } @Override protected void onPreExecute() { /** * show dialog */ super.onPreExecute(); } @Override protected JSONObject doInBackground(Void ... params) { /** * Do network related stuff * return string response. */ JSONObject json = new JSONObject(); try { HttpURLConnection httpCo = (HttpURLConnection) mUrl.openConnection(); httpCo.setDoOutput(true); httpCo.setConnectTimeout(20000); httpCo.setReadTimeout(20000); httpCo.connect(); boolean debut = true; StringBuilder buffer = new StringBuilder(); for (Map.Entry entry : mParam.entrySet()) { if(debut){ debut = false; } else { buffer.append("&"); } buffer.append(entry.getKey()); buffer.append("="); buffer.append(entry.getValue()); } OutputStreamWriter wr = new OutputStreamWriter(httpCo.getOutputStream()); wr.write(buffer.toString()); wr.flush(); String response = ""; if (httpCo.getResponseCode() == HttpsURLConnection.HTTP_OK) { String line; BufferedReader br = new BufferedReader(new InputStreamReader(httpCo.getInputStream())); while ((line = br.readLine()) != null) { response += line; } } else { response = "{\"status\":" + httpCo.getResponseCode() + "}"; } json = new JSONObject(response); httpCo.disconnect(); } catch (Throwable t) { System.out.println("Exception: " + t.toString()); } return json; } @Override protected void onPostExecute(JSONObject result) { /** * update ui thread and remove dialog */ super.onPostExecute(result); delegate.processFinish(result); } }