Volley, be default doesn’t support GSON. But it gives the flexibility to do anything.
Lets see how we can do this.

You can read about Complete Volley Demo in Android from here..

I am going to create a new class for the GSON.
Below is my class for the GSON.


package com.coderzheaven.volleydemo;

public class MyGson {

    public String Site, demo;

    public String getSite() {
        return Site;

    public void setSite(String site) {
        Site = site;


Now create a class named ‘GsonRequest’ for the GSON

package com.coderzheaven.volleydemo;

import com.android.volley.AuthFailureError;
import com.android.volley.NetworkResponse;
import com.android.volley.ParseError;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.toolbox.HttpHeaderParser;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;

import java.io.UnsupportedEncodingException;
import java.util.Map;

public class GsonRequest<T> extends Request<T> {
    private final Gson gson = new Gson();
    private final Class<T> clazz;
    private final Map<String, String> headers;
    private final Response.Listener<T> listener;

     * Make a GET request and return a parsed object from JSON.
     * @param url URL of the request to make
     * @param clazz Relevant class object, for Gson's reflection
     * @param headers Map of request headers
    public GsonRequest(String url, Class<T> clazz, Map<String, String> headers,
                       Response.Listener<T> listener, Response.ErrorListener errorListener) {
        super(Method.GET, url, errorListener);
        this.clazz = clazz;
        this.headers = headers;
        this.listener = listener;

    public Map<String, String> getHeaders() throws AuthFailureError {
        return headers != null ? headers : super.getHeaders();

    protected void deliverResponse(T response) {

    protected Response<T> parseNetworkResponse(NetworkResponse response) {
        try {
            String json = new String(
            return Response.success(
                    gson.fromJson(json, clazz),
        } catch (UnsupportedEncodingException e) {
            return Response.error(new ParseError(e));
        } catch (JsonSyntaxException e) {
            return Response.error(new ParseError(e));

Now to make the GSON call…

GsonRequest<MyGson> myReq = new GsonRequest<MyGson>(jsonUrl,
		MyGson.class, null,
		createSuccessListener(), // listener for success
		createErrorListener());  // listener for failure 

private Response.Listener<MyGson> createSuccessListener() {

	return new Response.Listener<MyGson>() {
		public void onResponse(MyGson response) {
			Log.i(TAG, "Response : " + response.getSite());


private Response.ErrorListener createErrorListener() {

	return new Response.ErrorListener() {
		public void onErrorResponse(VolleyError error) {
			Log.i(TAG, "Error : " + error.getLocalizedMessage());



One Comment

  1. Pingback: Volley Demo in Android – CoderzHeaven

Leave a Reply

Your email address will not be published. Required fields are marked *




Theme by HermesThemes

Copyright © 2018 CoderzHeaven. All Rights Reserved

Please wait...

Subscribe to our newsletter

Want to be notified when our article is published? Enter your email address and name below to be the first to know.