Класс URLConnection
Класс URLConnection
Напомним, что в классе URL, рассмотренном нами в начале этой главы, мы привели прототип метода openConnection, возвращающий для заданного объекта класса URL ссылку на объект URLConnection:
public URLConnection openConnection();
Что мы можем получить, имея ссылку на этот объект?
Прежде всего, пользуясь этой ссылкой, мы можем получить содержимое объекта, адресуемое соответствующим объектом URL, методом getContent:
public Object getContent();
Заметим, что метод с таким же названием есть и в классе URL. Поэтому если все, что вы хотите сделать, это получение содержимое файла, адресуемое объектом класса URL, то нет никакой необходимости обращаться к классу URLConnection.
Метод getInputStream позволяет открыть входной поток данных, с помощью которого можно считать файл или получить данные от расширения сервера Web:
public InputStream getInputStream();
В классе URLConnection определен также метод getOutputStream, позволяющий открыть выходной поток данных:
public OutputStream getOutputStream();
Не следует думать, что этот поток можно использовать для записи файлов в каталоги сервера Web. Однако для этого потока есть лучшее применение - с его помощью можно передать данные расширению сервера Web.
Рассмотрим еще несколько полезных методов, определенных в классе URLConnection.
Метод connect предназначен для установки соединения с объектом, на который ссылается объект класса URL:
public abstract void connect();
Перед установкой соединения приложение может установить различные параметры соединения. Некоторые из методов, предназначенных для этого, приведены ниже:
- setDefaultUseCaches
- setUseCaches
- setDoInput
- setDoOutput
- setIfModifiedSince
- getContentEncoding
- getContentLength
- getContentType
- getDate
- getLastModified
- getExpiration
Включение или отключение кэширования по умолчанию
public void setDefaultUseCaches( boolean defaultusecaches);
Включение или отключение кэширования
public void setUseCaches(boolean usecaches);
Возможность использования потока для ввода
public void setDoInput(boolean doinput);
Возможность использования потока для вывода
public void setDoOutput(boolean dooutput);
Установка даты модификации документа
public void setIfModifiedSince( long ifmodifiedsince);
В классе URLConnection есть методы, позволяющие определить значения параметров, установленных только что описанными методами:
public boolean getDefaultUseCaches(); public boolean getUseCaches(); public boolean getDoInput(); public boolean getDoOutput(); public long getIfModifiedSince();
Определенный интерес могут представлять методы, предназначенные для извлечения информации из заголовка протокола HTTP:
Метод возвращает содержимое заголовка content-encoding (кодировка ресурса, на который ссылается URL)
public String getContentEncoding();
Метод возвращает содержимое заголовка content-length (размер документа)
public int getContentLength();
Метод возвращает содержимое заголовка content-type (тип содержимого)
public String getContentType();
Метод возвращает содержимое заголовка date (дата посылки ресурса в секундах с 1 января 1970 года)
public long getDate();
Метод возвращает содержимое заголовка last-modified (дата изменения ресурса в секундах с 1 января 1970 года)
public long getLastModified();
Метод возвращает содержимое заголовка expires (дата устаревания ресурса в секундах с 1 января 1970 года)
public long getExpiration();
Другие методы, определенные в классе URLConnection, позволяют получить все заголовки или заголовки с заданным номером, а также другую информацию о соединении. При необходимости вы найдете описание этих методов в справочной системе Java WorkShop.