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 MapgetParams() 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.
https://drive.google.com/open?id=1gNamnDQ_BA0nn2c-7nE57Bmlg6SFIB3h
Semoga bermanfaat.
Komentar
Posting Komentar