【问题标题】:Android volley can't handle a 2mb json fileAndroid volley 无法处理 2mb 的 json 文件
【发布时间】:2017-12-29 05:42:26
【问题描述】:

我在我的 vps 和我的 android 应用程序中托管了一个 json 文件,我试图请求它以便将它保存在用户的设备中等等。确切地说,这是一个 2.2 json mb 文件

这是我的代码:

    public void sendJSONRequest(final String url) {
    JsonArrayRequest jsonArrayRequest  = new JsonArrayRequest(Request.Method.GET, url + "games.json", null, new Response.Listener<JSONArray>() {
        @Override
        public void onResponse(JSONArray response) {
            Toast.makeText(Main2Activity.this, "Cool", Toast.LENGTH_SHORT).show();
            // Log.d(TAG,"PLS: " + response);
            // mUpcomingGameReleasesList gets filled/appended with new data here
            // mUpcomingGameReleasesList.addAll(parseJSONResponse(response));
            // mUpcomingGamesAdapter.setData(mUpcomingGameReleasesList);
        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(Main2Activity.this, error.getMessage(), Toast.LENGTH_SHORT).show();
        }
    });
    mRequestQueue.add(jsonArrayRequest);
}

谢谢

【问题讨论】:

  • 其实volley并不是用来处理大数据的,volley将整个http响应内容转换成String或者Json等类型后,将整个http响应内容以byte[]的形式存储在内存中,所以不能处理大数据响应,您应该改用 okhttp。
  • OkHttp 是。我试试看,谢谢

标签: java android json android-volley


【解决方案1】:

// 尝试重试策略。

jsonArrayRequest.setRetryPolicy(new DefaultRetryPolicy(
                    30000,
                    DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                    DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

        mRequestQueue.add(jsonArrayRequest);

【讨论】:

    猜你喜欢
    • 2015-03-09
    • 1970-01-01
    • 2017-05-07
    • 2017-12-25
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多