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

Apps Script untuk Cetak Sertifikat

Kumpulan Source Code Greenfoot

Menyembunyikan Failed Load Images di Blogger

Kode Greenfoot Game Flappy Bird

Algorithma Coretan Abstrak dengan HTML5 Canvas

Kebodohan Karyawan Menyalahkan Sistem

Algorithma Bilangan Prima dengan Javascript

Checking Data yang Belum Dimasukkan dalam Daftar Menggunakan Query Google Sheet

Mencoba Submit Theme di Wordpress.org

Generate Karakter Acak dan Menempatkannya di Sel Google Sheets dengan Apps Script