예제 #1
0
  @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);
    }
  }
예제 #2
0
  @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));
    }
  }