Ошибка исключения залпа при коде ответа 304 и 200

Играя с библиотекой Volley, я заметил, что при создании POSTJsonObjectRequest , если сервер возвращает код 304 или 200 без данных в ответе(response.data)Волей интерпретирует это как ошибку, а не как успех.

Мне удается решить эту проблему, добавив пару строк кода в методеResponse<JSONObject> parseNetworkResponse(NetworkResponse response) в классеJsonObjectRequest.java.

@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
    try {
        if (!response.notModified) {// Added for 304 response
            String jsonString = new String(response.data,
                    HttpHeaderParser.parseCharset(response.headers));
            return Response.success(new JSONObject(jsonString),
                    HttpHeaderParser.parseCacheHeaders(response));
        } else // Added for 304 response
            return Response.success(new JSONObject(),HttpHeaderParser.parseCacheHeaders(response));
    } catch (UnsupportedEncodingException e) {
        Log.v("Volley", "UnsupportedEncodingException " + response.statusCode);
        if (response.statusCode == 200)// Added for 200 response
            return Response.success(new JSONObject(), HttpHeaderParser.parseCacheHeaders(response));
        else
            return Response.error(new ParseError(e));
    } catch (JSONException je) {
        Log.v("Volley", "JSONException " + response.statusCode);
        if (response.statusCode == 200)// Added for 200 response
            return Response.success(new JSONObject(),HttpHeaderParser.parseCacheHeaders(response));
        else
            return Response.error(new ParseError(je));
    }
}

Это лучшее решение для этой проблемы?

Спасибо!

РЕДАКТИРОВАТЬ

Проверка классаBasicNetwork.java Я понял, что залп проверяет, нет ли в ответе данных, спрашивая,httpResponse.getEntity() != null.

// Some responses such as 204s do not have content. We must check.
    if (httpResponse.getEntity() != null) {
        responseContents = entityToBytes(httpResponse.getEntity());         
    } else {// Add 0 byte response as a way of honestly representing a
    // no-content request.
        responseContents = new byte[0];
    }

Но проблема все еще в том, что JSONException возникает, когда Volley пытается создать новую строку сresponse.data == new byte[0] в методе parseNetworkResponse.

Ответы на вопрос(1)

Ваш ответ на вопрос