10 Mar 2018

Tutorial Android : Cek Koneksi ke API/Server

Saat menggunakan aplikasi dengan API biasanya bisa saja perusahaan yang membutuhkan kestabilan transaksi akan menggunakan beberapa server untuk melayani request. Jadi jika suatu saat server yang satu mati maka request kita alihkan pada server lainnya. Nah untuk mengakali itu kita akan bahas pada tutorial ini.

Langsung saja, untuk melakukan cek koneksi kita gunakan satu buah class dengan nama ApiCheckConnetion.java

public class ApiCheckConnection extends AsyncTask<Void, Void, String> {
        private static final int TIMEOUT = 20000;

        public ApiCheckConnection(Context context) {
            this.context = context;
        }

        private Context context;

        /**
         * Before starting background do some work.
         */
        @Override
        protected void onPreExecute() {


        }

        @Override
        protected String doInBackground(Void... params) {
            String res = null;
            try {
                long startTime = System.nanoTime();
                HttpGet httpRequest;
                httpRequest = new HttpGet(new URL("http://www.google.co.id/").toURI());

                final HttpParams httpParams = new BasicHttpParams();
                HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT);

                HttpClient httpClient = new DefaultHttpClient(httpParams);

                HttpResponse response = (HttpResponse) httpClient.execute(httpRequest);
                res = response.toString();

            } catch (MalformedURLException e) {
                res = "Failure";
                e.printStackTrace();
            } catch (URISyntaxException e) {
                res = "Failure";
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                res = "Failure";
                e.printStackTrace();
            } catch (IOException e) {
                res = "Failure";
                e.printStackTrace();
            } finally {
            }
            return res;
        }

        /**
         * Update list ui after process finished.
         */
        protected void onPostExecute(String result) {
            if(result!=null){
                if(result.contains("Fail")){
                //jika tidak konek ke server
                    
                }else{
                //jika konek ker server
                    
                }
            }else{
                //jika tidak konek ke server

            }
        }
    }

Kita bisa mendefinisikan berapa lama jumlah waktu untuk menentukan bahwa server pertama tidak konek dengan mengatur waktu TIMEOUT nya. Dan untuk menjalankannya tinggal kita panggil saja.

Tidak ada komentar:

Posting Komentar