android - 当响应包含超过 100 个 JSON 对象时,Volley REST API 获取请求错误
问题描述
我正在编写一个应用程序,该应用程序显示来自 Visual Studio 中用 C# 编写的 REST 服务的一些数据。REST API 由我的团队编写。响应通常是一个 JSON 数组,其中 JSON 对象作为其子级,这些子级本质上表示正在返回的数据。我正在使用 Volley 库来处理请求,解析响应并将其放入 Recycler View 列表中。当 JSON 对象的数量,或者假设返回的 JSON 数组的长度小于 100 时,响应就会出现。只要超过 100,响应就不会到达应用程序。即使是 JSONException 堆栈跟踪也没有任何帮助。我尝试在 Postman 中测试 API,无论返回多少 JSON 对象,它都能正常工作。你能帮我弄清楚是否有任何我们可以覆盖的例程来解决这个问题吗?如果您想查看代码本身,请告诉我。
谢谢, 阿图尔
解决方案
我认为它由于 timeOutError 而崩溃。当 volley 需要解析大量数据时,你应该为你的 volley 请求设置超时时间。默认超时为 2500 毫秒,将其设置为 10000 毫秒或更高,它将适用于 ex。
strReq.setRetryPolicy(new DefaultRetryPolicy(10000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
它不会消耗您分配的所有时间,但是一旦获取所有数据,它将断开连接
timeoutError 不会让您崩溃,但会调用 onErrorResponse,请确保在进行插入操作之前已创建要插入的表。
推荐阅读
- android - DocumentsContract.copyDocument() 总是失败
- reactjs - React/Redux 如何将值从 redux 存储设置为组件的状态
- vb.net - 来自嵌套对象 VB.net 的列表框 DisplayMember
- amazon-web-services - 对 s3 存储桶中的 csv 数据进行分区,以便使用 Athena 进行查询
- maven - 执行 maven install 阶段而不执行 maven compile
- javascript - 有谁知道如何为对象 91 重新训练 TFJS 的对象检测(coco-ssd)?
- angular - Compodocs + Storybook + Angular 9中的空documentation.json
- python - 循环遍历文件对python
- openssl - OpenLDAP TLS 失败,TLS init def ctx failed: -69
- python - 如何获得浮点数的长版本?