Response Web menggunakan Android Volley


Volley adalah library Android yang dapat digunakan untuk mengirimkan dan mendapatkan data dari website.

Penulis tidak tahu pasti perbedaan dengan HttpURLConnection, namun menurut penulis, library ini lebih mudah digunakan untuk mengirim dan menerima data berbasis web, terutama PHP dan yang berbentuk JSON.

Berikut ini adalah kode MainActivity project Android, yang menggunakan Volley untuk menggenerate halaman website.

package com.example.pakaivolley; 
 
import androidx.appcompat.app.AppCompatActivity; 
 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 
import android.widget.Toast; 
 
import com.android.volley.AuthFailureError; 
import com.android.volley.NetworkError; 
import com.android.volley.NoConnectionError; 
import com.android.volley.ParseError; 
import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.ServerError; 
import com.android.volley.TimeoutError; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 
 
import java.util.HashMap; 
import java.util.Map; 
 
public class MainActivity extends AppCompatActivity 
{ 
 
    private RequestQueue queue; 
    private static String REQ_TAG = "RESPONSEACTIVITY"; 
 
    protected void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
 
        queue = Volley.newRequestQueue(this); 
 
        Button btn =(Button)findViewById(R.id.btn_click); 
        btn.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                makeUrlRequest(); 
            } 
        }); 
    } 
 
    private void makeUrlRequest() 
    { 
        String url=((EditText)findViewById(R.id.url_text)).getText().toString(); 
        StringRequest stringRequest = new StringRequest(Request.Method.GET, url, getPostResponseListener(),getPostErrorListener()){ 
            protected Map getParams() throws com.android.volley.AuthFailureError { 
                Map params = new HashMap(); 
                params.put("passkey",""); 
                return params; 
            }; 
        }; 
        stringRequest.setTag(REQ_TAG); 
        queue.add(stringRequest); 
        findViewById(R.id.progress_bar).setVisibility(View.VISIBLE); 
    } 
 
    private Response.Listener getPostResponseListener(){ 
        return new Response.Listener() { 
            @Override 
            public void onResponse(final String response) { 
                if(response!=null && !response.isEmpty()){ 
                    runOnUiThread(new Runnable() { 
                        @Override 
                        public void run() { 
                            printHasil(response); 
                        } 
                    }); 
                }else showPesan("Failed to call!"); 
            } 
        }; 
    } 
 
    private void printHasil(String response) 
    { 
        ((TextView)findViewById(R.id.txt_result)).setText(response); 
        findViewById(R.id.progress_bar).setVisibility(View.GONE); 
    } 
 
    private Response.ErrorListener getPostErrorListener(){ 
        return new Response.ErrorListener() { 
            @Override 
            public void onErrorResponse(VolleyError error) { 
                if (error instanceof TimeoutError || error instanceof NoConnectionError) { 
                    showPesan("Error getPostErrorListener : Timeout or NoConnection"); 
                } else if (error instanceof AuthFailureError) { 
                    showPesan("Error getPostErrorListener : AuthFailure "); 
                } else if (error instanceof ServerError) { 
                    showPesan("Error getPostErrorListener : ServerError "); 
                } else if (error instanceof NetworkError) { 
                    showPesan("Error getPostErrorListener : NetworkError "); 
                } else if (error instanceof ParseError) { 
                    showPesan("Error getPostErrorListener : ParseError "); 
                } 
            } 
        }; 
    } 
 
    private void showPesan(String a) 
    { 
        Toast.makeText(this, a, Toast.LENGTH_SHORT).show(); 
        if(findViewById(R.id.progress_bar).isShown())findViewById(R.id.progress_bar).setVisibility(View.GONE); 
    } 
} 


Kode lengkap projectnya dapat didownload di link di bawah ini:

https://drive.google.com/open?id=1gNamnDQ_BA0nn2c-7nE57Bmlg6SFIB3h

Semoga bermanfaat.

Komentar



Postingan populer dari blog ini

Algorithma FPB dan KPK dengan Javascript

Apps Script untuk Cetak Sertifikat

Menampilkan Undetermined Circle Progressbar di Java

Genetics Algorithm Method with Progressive Error Prediction

Kode Java Membandingkan Dua File

Cara Menentukan Arah Kiblat Menggunakan Google Maps

Peringatan: Aksi Penipuan Skimming Melalui Aplikasi Android M-Pajak

Menghapus Baris di Google Sheets yang Memiliki Sel Kosong dengan Apps Script

Tutorial Upload File ke Google Drive dari Website

Eliminasi Gauss-Jordan untuk Invers Matrix dengan Java