Java Spark Framework - тело запроса потеряно после промежуточного программного обеспечения

Я использую платформу Spark для своего приложения.

У меня есть промежуточное ПО, которое проверяет (среди прочего), имеет ли тело формат JSON:

    // Middleware
    before((req, res) -> {
        // Method check
        if (!req.requestMethod().equals("POST")) {
            halt(403, "{\"result\":\"ERR\",\"errMsg\":\"Only POST allowed!\",\"code\":403}");
        }
        // JSON Check
        JSONObject body_json = new JSONObject();
        try {
            body_json = new JSONObject(req.body());
        } catch (JSONException e) {
            halt(403, "{\"result\":\"ERR\",\"errMsg\":\"No valid JSON!\",\"code\":403}");
        }
        // At this point (end of middleware) the request body is still unchanged !
    });

Затем у меня есть нормальная функция для обработки POST-запросов:

post("/post_some_data", (req, res) -> {
     String body = req.body()           // This string is empty !!
     int length = req.contentLength();  // This remain unchanged       
});

Но тело запроса вдруг становится пустым (остальные атрибуты и заголовки остаются без изменений).

Это баг или я что-то не так делаю??


person N10    schedule 26.12.2014    source источник


Ответы (1)


В фреймворке spark обнаружена ошибка. Обновление библиотеки до версии 2.1 решит эту и все подобные проблемы.

person N10    schedule 27.12.2014