yet another refactor of HttpInput.... must read -1 before isFinished is true