At Google I/O last
year, the search engine giant showcased a faster way to make network
requests within an Android application by introducing the Volley
networking library. Volley includes a lot of features useful for managing network requests and their response caches in a fast and easy way.
One can use Volley to run simultaneous requests on a pool of threads that can be given priority over another. In addition, it can be used to handle JSON requests, image request or files of that size and nature.
In this tutorial, we will learn how to setup Volley for Android and write a sample code to make a JSON request.
One can use Volley to run simultaneous requests on a pool of threads that can be given priority over another. In addition, it can be used to handle JSON requests, image request or files of that size and nature.
In this tutorial, we will learn how to setup Volley for Android and write a sample code to make a JSON request.
Advantages of Volley library
a) Automatically schedules the network requests
b) Supports request prioritization. This means that you can load content depending of priorities, for example the main content could have a high priority, but the images a low priority.
c) Provides transparent disk and memory cache that allows for quick reloading of data. Transparent cache means that the caller doesn’t have to know about the existence of the cache. That is, the cache is implemented automatically. You do, however, have the possibility to disable the caching.
d) Provides a good API for canceling requests. You can cancel a single request, or cancel requests depending on some filters.
Besides the great features that Volley comes with, you don’t have to use it for everything. Volley is great for RPC-style network operations that populate UI, a typical example would be loading thumbnail images into a ListView, but not very good for streaming operations like downloading a video or music file
The following are the Important classes of Volley:
Topics covered in this Tutorial
-Making the GET Request
-Making POST Requests
-Making PuT Requests
-Making DELETE Requests
Making GET Requestsa) Automatically schedules the network requests
b) Supports request prioritization. This means that you can load content depending of priorities, for example the main content could have a high priority, but the images a low priority.
c) Provides transparent disk and memory cache that allows for quick reloading of data. Transparent cache means that the caller doesn’t have to know about the existence of the cache. That is, the cache is implemented automatically. You do, however, have the possibility to disable the caching.
d) Provides a good API for canceling requests. You can cancel a single request, or cancel requests depending on some filters.
Besides the great features that Volley comes with, you don’t have to use it for everything. Volley is great for RPC-style network operations that populate UI, a typical example would be loading thumbnail images into a ListView, but not very good for streaming operations like downloading a video or music file
The following are the Important classes of Volley:
- - RequestQueue: A Queue containing the Network/HTTP Requests that needs to be made.
- - Request: A Base Class which contains Network related information like HTTP Methods.
- - StringRequest: HTTP Request where the response is parsed a String.
- - JsonObjectRequest: HTTP Request where the response is JSONObject.
Topics covered in this Tutorial
-Making the GET Request
-Making POST Requests
-Making PuT Requests
-Making DELETE Requests
Making GET Requests is simple. The example below uses JsonObjectRequest. It prepares a JsonObjectRequest and passes and then adds it to RequestQueue. The JsonObject accepts 4 parameters (Http method, Url, Json values, Response Listener - Invoked on success, Error Listener - Invoked on failure).
// prepare the Request JsonObjectRequest getRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener() { @Override public void onResponse(JSONObject response) { // display response Log.d("Response", response.toString()); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Log.d("Error.Response", response); } } ); // add it to the RequestQueue queue.add(getRequest);
Making PUT Requests
Creating PUT Request is same as POST basically.
StringRequest putRequest = new StringRequest(Request.Method.PUT, url, new Response.Listener() { @Override public void onResponse(String response) { // response Log.d("Response", response); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // error Log.d("Error.Response", response); } } ) { @Override protected Map getParams() { Map params = new HashMap (); params.put("name", "Alif"); params.put("domain", "http://itsalif.info"); return params; } }; queue.add(putRequest);
Making DELETE Requests
Creating the delete request is as follows.
StringRequest dr = new StringRequest(Request.Method.DELETE, url, new Response.Listener() { @Override public void onResponse(String response) { // response Toast.makeText($this, response, Toast.LENGTH_LONG).show(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // error. } } ); queue.add(dr);
source code link: https://github.com/shir60bhushan/AndroidVolleyLibraryTutorial
0 comments :
Post a Comment