Skip to content

Instantly share code, notes, and snippets.

@akirasosa
Last active April 18, 2019 10:28
Show Gist options
  • Save akirasosa/6697643 to your computer and use it in GitHub Desktop.
Save akirasosa/6697643 to your computer and use it in GitHub Desktop.
Volley. Use cache if there is no internet connection.
public class MyStringRequest extends StringRequest{
public MyStringRequest(int method, String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
super(method, url, listener, errorListener);
}
@Override
public void deliverError(VolleyError error) {
if (error instanceof NoConnectionError) {
Cache.Entry entry = this.getCacheEntry();
if(entry != null) {
Response<String> response = parseNetworkResponse(new NetworkResponse(entry.data, entry.responseHeaders));
deliverResponse(response.result);
return;
}
}
super.deliverError(error);
}
}
@coolegos
Copy link

Thank you very much.

@ultimatecrack
Copy link

Thanq so much..

@marcoscgdev
Copy link

marcoscgdev commented Apr 18, 2019

Without deprecated methods:

import com.android.volley.*;
import com.android.volley.toolbox.StringRequest;

import java.net.HttpURLConnection;

public class MyStringRequest extends StringRequest {

    public MyStringRequest(int method, String url, Response.Listener<String> listener, Response.ErrorListener errorListener) {
        super(method, url, listener, errorListener);
    }

    @Override
    public void deliverError(VolleyError error) {
        if (error instanceof NoConnectionError) {
            Cache.Entry entry = this.getCacheEntry();
            if(entry != null) {
                Response<String> response = parseNetworkResponse(new NetworkResponse(HttpURLConnection.HTTP_OK,
                        entry.data, false, 0, entry.allResponseHeaders));
                deliverResponse(response.result);
                return;
            }
        }
        super.deliverError(error);
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment