added method to read and cache request body