openStream()
отлично работает, если вы хотите, чтобы ваш класс был защищен от изменений в типе URL - например, между абсолютными путями к файлам (file: ///), ресурсами, содержащимися в jar, и потенциальнодругие протоколы могут быть даже с пользовательскими обработчиками протоколов (scotth: //foo.bar).
Однако, как вы обнаружили, его абстракция довольно высока, поэтому, если вы хотите узнать какие-либо подробности о природевзаимодействие с ресурсом, которое вам необходимо openConnection()
и приведение по своему усмотрению.
Re: другие коды состояния - вы, вероятно, захотите взглянуть на RFC2616 - если все, что вам нужноо "успешно" вы можете просто проверить, что String.valueOf(conn.getResponseCode()).startsWith('2')
.