栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

当响应代码304和200时出现Volley异常错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

当响应代码304和200时出现Volley异常错误

Miguel-仅在成功响应后才调用此方法吗?

对于所有状态代码<200或状态代码> 200,Volley调用parseNetworkError(VolleyError
volleyError)而不是parseNetworkResponse(NetworkResponse response)方法。看这里 -

https://android.googlesource.com/platform/frameworks/volley/+/master/src/com/android/volley/toolbox/BasicNetwork.java

行号-118-120

  if (statusCode < 200 || statusCode > 299) {     throw new IOException();   }

和相应的捕获块行号-128 -151

catch (IOException e) { int statusCode = 0; NetworkResponse networkResponse = null; if (httpResponse != null) {     statusCode = httpResponse.getStatusLine().getStatusCode(); } else {     throw new NoConnectionError(e); } VolleyLog.e("Unexpected response pre %d for %s", statusCode, request.getUrl()); if (responseContents != null) {     networkResponse = new NetworkResponse(statusCode, responseContents,  responseHeaders, false);     if (statusCode == HttpStatus.SC_UNAUTHORIZED ||  statusCode == HttpStatus.SC_FORBIDDEN) {         attemptRetryonException("auth",      request, new AuthFailureError(networkResponse));     } else {         // TODO: only throw ServerError for 5xx status pres.         throw new ServerError(networkResponse);     } } else {     throw new NetworkError(networkResponse); }        }

如果要覆盖此行为,可以在BasicNetwork.java-> performRequest方法内添加特定于状态码的实现。

编辑:所以它不是因为状态码而是因为响应为空。好吧,我认为您在实现自定义Request类方面做得正确。Volley随附了一些预定义的流行请求类型,以简化易用性,但您始终可以创建自己的请求。与其基于状态码的实现,不如直接反序列化之前检查以下字符串是否为空-

String jsonString = new String(response.data,     HttpHeaderParser.parseCharset(response.headers));if (!jsonString .isEmpty()) {      return Response.success(new JSonObject(jsonString),     HttpHeaderParser.parseCacheHeaders(response));}else {return Response.success(new JSonObject(),         HttpHeaderParser.parseCacheHeaders(response));}

**尚未测试过,但您明白了:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/616858.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号