首页 > 解决方案 > 当响应包含超过 100 个 JSON 对象时,Volley REST API 获取请求错误

问题描述

我正在编写一个应用程序,该应用程序显示来自 Visual Studio 中用 C# 编写的 REST 服务的一些数据。REST API 由我的团队编写。响应通常是一个 JSON 数组,其中 JSON 对象作为其子级,这些子级本质上表示正在返回的数据。我正在使用 Volley 库来处理请求,解析响应并将其放入 Recycler View 列表中。当 JSON 对象的数量,或者假设返回的 JSON 数组的长度小于 100 时,响应就会出现。只要超过 100,响应就不会到达应用程序。即使是 JSONException 堆栈跟踪也没有任何帮助。我尝试在 Postman 中测试 API,无论返回多少 JSON 对象,它都能正常工作。你能帮我弄清楚是否有任何我们可以覆盖的例程来解决这个问题吗?如果您想查看代码本身,请告诉我。

谢谢, 阿图尔

标签: android

解决方案


我认为它由于 timeOutError 而崩溃。当 volley 需要解析大量数据时,你应该为你的 volley 请求设置超时时间。默认超时为 2500 毫秒,将其设置为 10000 毫秒或更高,它将适用于 ex。

strReq.setRetryPolicy(new DefaultRetryPolicy(10000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));

它不会消耗您分配的所有时间,但是一旦获取所有数据,它将断开连接

timeoutError 不会让您崩溃,但会调用 onErrorResponse,请确保在进行插入操作之前已创建要插入的表。

更多信息请访问这里这里largeHeap


推荐阅读