Я использую платформу 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
});
Но тело запроса вдруг становится пустым (остальные атрибуты и заголовки остаются без изменений).
Это баг или я что-то не так делаю??