@Override protected VolleyError parseNetworkError(final VolleyError volleyError) { if (volleyError.errorCode == ErrorCode.BAD_REQUEST_ERROR) { try { final HttpResponseParser parser = new HttpResponseParser(); return parser.getErrorResponse( mRequestId, new String(volleyError.networkResponse.data, HTTP.UTF_8)); } catch (final UnsupportedEncodingException e) { return new ParseError(e); } catch (final JSONException e) { return new ParseError(e); } } else { if (volleyError.networkResponse != null && volleyError.networkResponse.data != null) { try { Logger.w( TAG, "Error message %s", new String(volleyError.networkResponse.data, HTTP.UTF_8)); } catch (UnsupportedEncodingException e) { // Not important since the error message is being printed for dev info only } } return super.parseNetworkError(volleyError); } }
@Override protected Response<ResponseInfo> parseNetworkResponse(final NetworkResponse response) { final HttpResponseParser parser = new HttpResponseParser(); try { final ResponseInfo responseInfo = parser.getSuccessResponse(mRequestId, new String(response.data, HTTP.UTF_8)); if (responseInfo.success) { return Response.success(responseInfo, HttpHeaderParser.parseCacheHeaders(response)); } return Response.error(new ParseError("Unable to parse and store data!")); } catch (final JSONException e) { return Response.error(new ParseError(e)); } catch (final UnsupportedEncodingException e) { return Response.error(new ParseError(e)); } catch (final XmlPullParserException e) { return Response.error(new ParseError(e)); } catch (final IOException e) { return Response.error(new ParseError(e)); } }