是否有可能在Android上使用volley下载任何文件(pdf或zip)?

时间:2018-05-06 08:08:34

标签: android android-volley

如何使用android volley下载pdf文件或zip文件。使用String,JSON,Image或Video很容易。 其他文件怎么样?

1 个答案:

答案 0 :(得分:2)

首先,您必须创建自己的自定义请求类,如

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("token", jsonData.app.access.token);

现在只需通过我们的自定义类发送请求,其中包含Request.Method.GET以及要从中添加文件的URL。

class InputStreamVolleyRequest extends Request<byte[]> {
private final Response.Listener<byte[]> mListener;
private Map<String, String> mParams;

//create a static map for directly accessing headers
public Map<String, String> responseHeaders ;

public InputStreamVolleyRequest(int method, String mUrl ,Response.Listener<byte[]> listener,
                                Response.ErrorListener errorListener, HashMap<String, String> params) {
  // TODO Auto-generated constructor stub

    super(method, mUrl, errorListener);
     // this request would never use cache.
     setShouldCache(false);
     mListener = listener;
     mParams=params;
}

@Override
protected Map<String, String> getParams()
     throws com.android.volley.AuthFailureError {
  return mParams;
};


@Override
protected void deliverResponse(byte[] response) {
    mListener.onResponse(response);
}

@Override
protected Response<byte[]> parseNetworkResponse(NetworkResponse response) {

    //Initialise local responseHeaders map with response headers received
    responseHeaders = response.headers;

    //Pass the response data here
    return Response.success( response.data, HttpHeaderParser.parseCacheHeaders(response));
}
}