Что я делаю не так?
Это:
Я [...] хочу прочитать этот [файл] дважды
Ваш клиент отправляет файл в ваше веб-приложение только один раз, поэтому вы должны прочитать его только один раз.
Конечно, вы можете перематывать поток ввода и, по-видимому, решить непосредственную проблему, но это только создает новые проблемы, потому что теперь у вас есть весь файл в памяти одновременно - и ваш код может продолжаться только один раз Запрос прочитан.
Вы не хотите прочитать файл дважды.
Если вы хотите проверить, затем обработать JSON, затем получить JSON, сохранить его в переменной, а затем проверить и обработать эту переменную. Да, это все еще требует от вас прочтения всего тела запроса, но тогда это ваше требование.