package com.android.volley.request; import com.android.volley.Response.Listener; import com.android.volley.NetworkResponse; import com.android.volley.Request; import com.android.volley.Response; import com.android.volley.Request.Method; import com.android.volley.toolbox.HttpHeaderParser; import java.io.UnsupportedEncodingException; public class ByteRequest extends Request<byte[]> { private final Listener<byte[]> mListener; /** * Creates a new GET request. * * @param url URL to fetch the string at * @param listener Listener to receive the byte array response */ public ByteRequest(String url, Listener<byte[]> listener, Response.ErrorListener errorListener) { this(Method.GET, url, listener, errorListener); } /** * Creates a new request with the given method. * * @param method the request {@link Method} to use * @param url URL to fetch the byte array at * @param listener Listener to receive the byte array response or error message */ public ByteRequest(int method, String url, Listener<byte[]> listener, Response.ErrorListener errorListener) { super(method, url, errorListener); mListener = listener; } @Override protected void deliverResponse(byte[] response) { if(null != mListener){ mListener.onResponse(response); } } @Override protected Response<byte[]> parseNetworkResponse(NetworkResponse response) { return Response.success(response.data, HttpHeaderParser.parseCacheHeaders(response)); } @Override public String getBodyContentType() { return "application/octet-stream"; } }