Sending and Receiving data to/from server:
To work with server communication, we have some classes in Android.
Server communication includes,
1) Sending data to server from mobile app
2) Receiving data from server to mobile app
To send and receive data, we need to have following things
1) Valid URL
2) Parameter keys – provided by backend team, to which we send data
URL can have 2 types of methods
1) GET – Whatever the values we send are attached as a part of URL
2) POST – Values are sent separately. This is more secure.
To work with server communication, Android provideds us HttpUrlConnection class. But, this is too slow. To overcome this problem, Android also recommends us Volley library. Apart from these 2, we have some other 3rd party libraries.
1) HttpUrlConnection – Android class
2) Volley – 3rd party library recommended by Android
3) Retrofit – 3rd party library
4) Loopj AsyncTask – 3rd party library
5) OKHttp – 3rd party library
|
|
|
|
Like this, we have so many 3rd party libraries. It is the responsibility of the developer to choose the best among these.
Working with Volley:
To work with Volley, we have following steps
1) Find the maven dependency link and paste it under dependencies in build.gradle(module:app) and click on Sync now
The link: compile ‘com.android.volley:volley:1.0.0’
Versions in these links will be changed whenever there is an update to library
2) Find/get the required URL and its method(GET or POST)
3) Create a progress dialog and start
final ProgressDialog p = new ProgressDialog(this);
p.setMessage(“Please wait”);
p.show();
4) Create a String variable with the URL
Ex: String url = “http://api.androidhive.info/contacts/”;
5) Create an object of StringRequest by passing the required 3 or 4 parameters.
Ex: StringRequest request = new StringRequest(method, url, responseListener, errorListener);
StringRequest request = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
p.dismiss();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
p.dismiss();
}
});
6) In onResponse, we receive the response. In onErrorResponse, we receive the error. In both the methods, we dismiss the progres dialog that was created in 3rd step.
7) Create an object of RequestQueue
RequestQueue queue = Volley.newRequestQueue(Activity.this);
8) Add our StringRequest object to requestQueue.
queue.add(request);