Обзор класса HttpURLConnection Java, примеры работающих программ

Обзор класса HttpURLConnection Java, примеры работающих программВ Java предоставляется подкласс HttpURLConnection, производный от класса URLConnection и поддерживающий соединения по сетевому протоколу НТТР. Чтобы получить объект класса HttpURLConnection, следует вызвать метод openConnection() для объекта типа URL, как описано в данной статье, но результат нужно привести к типу HttpURLConnection.

Разумеется , при этом необходимо убедиться, что соединение по протоколу HTTP действительно установлено. Получив ссылку HttpURLConnection , можно вызвать любые методы, унаследованные от класса URLConnection, а также любые методы, определенные в самом классе HttpURLConnection.

Некоторые методы из этого класса перечислены ниже:

static boolean getFollowRedirects() — возвращает логическое значение true, если автома­тически следует переадресация, а иначе — логическое значение false.

String getRequestMethod() — возвращает строковое представление метода, которым выполняется запрос по URL. По умолчанию запрос выполняется методом GET. Доступны и другие методы, в том числе и POST.

int getResponseCode() throws IOException — возвращает код ответа по протоколу НТТР. Если код ответа не может быть получен, возвращается значе­ние — 1. При разрыве соединения генерируется исклю­чение типа IОЕхсерtiоn.

String getResponseMessage() throws IOException — возвращает ответное сообщение, связанное с кодом ответа. Если ответное сообщение отсутствует, то воз­вращает пустое значение null.

static void setFollowRadirects(boolean способ) — если параметр способ принимает логическое значение true, то переадресация выполняется автоматически. Если же он принимает логическое значение false, то переадресация не происходит. По умолчанию пере­адресация выполняется автоматически.

void setRequestмethod(String способ) throws ProtocolZxception — задает метод, которым делаются запросы по прото­колу HTTP, в соответствии со значением параметра способ. По умолчанию принят метод GET, но доступны и другие методы, в том числе POST. Если в качестве параметра способ указано неправильное значение, то генерируется исключение типа ProtocolExoeption.

В приведенном ниже примере программы демонстрируется применение класса HttpURLConnection. Сначала в этой программе устанавливается соединение с веб-сайтом pro-java.ru, а затем выводится метод запроса, код ответа и ответное сообщение. И наконец, выводятся ключи и значения из заголовка ответа.

Ниже приведен результат, выводимый данной программой ( разумеется, точный ответ, возвращаемый сайтом pro-java.ru, будет меняться с течением времени).

Обратите внимание на порядок вывода ключей и значений из заголовка. Сначала вызывается метод getHeaderFields() , унаследованный от класса URLConnection, чтобы получить отображение ключей и значений из заголовка. Затем для этого отображения вызывается метод keySet(), чтобы извлечь мно­жество ключей из заголовка. Далее полученное множество ключей перебирается в цикле for в стиле for each, где вызывается также метод get(), чтобы получить значение, связанное с каждым ключом.