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

Kumpulan Source Code Greenfoot

Algorithma Coretan Abstrak dengan HTML5 Canvas

Game TicTacToe dengan Greenfoot

Cara Membuat Halaman HTML Sederhana

Kode Greenfoot Game Snake Sederhana

Honeycomb Style Wallpaper dengan HTML5 Canvas

Ganti Kartu ATM BNI yang Rusak

Tips Agar Website Anda Segera di Terima oleh Google Adsense dan di-Monetize

Selamatan Latar Glundengan Bubuk Banyuwangi

Menggunakan JSON di Netbeans 8.2