Главная страница
Навигация по странице:

  • Класс InetAddress Класс InetAddress

  • InetAddress

  • InetAddress String getHostName() - возвращает строку, представляющую имя хоста, ассоциированного с объектом класса InetAddress

  • Inet4Address и Inet6Address

  • ServerSocket

  • Класс HttpURLConnection Класс HttpURLConnection

  • HttpURLConnection

  • Пакет java. Пакет java net Java поддерживает семейства протоколов tcp, udp и т д. В составе пакета java net


    Скачать 18.88 Kb.
    НазваниеПакет java net Java поддерживает семейства протоколов tcp, udp и т д. В составе пакета java net
    Дата06.09.2022
    Размер18.88 Kb.
    Формат файлаdocx
    Имя файлаПакет java.docx
    ТипПротокол
    #664524

    Пакет java.net

    Java поддерживает семейства протоколов TCP, UDP и т.д. В составе пакета java.net имеется множество классов, связанных с сетью. Рассмотрим часть из них.

    Класс InetAddress

    Класс InetAddress используется для работы с числовым IP-адресом или доменным именем. Поддерживаются адреса IPv4 и IPv6.

    Чтобы создать объекта класса InetAddress, следует использовать один из многих доступных методов-фабрик, например.

    • static InetAddress getLocalHost() - возвращает объект класса InetAddress, представляющий локальный хост

    • static InetAddress getByName(String host) - возвращает объект класса InetAddress хоста по указанному имени

    • static InetAddress[] getAllByName(String host) - возвращает массив объект класса InetAddress, представляющий все адреса, в которое преобразуется конкретное имя

    Некоторые методы класса:

    • byte[] getAddress() - возвращает байтовый массив, представляющий IP-адрес в порядке байтов сети

    • String getHostAddress() - возвращает строку, представляющую адрес хоста, ассоциированного с объектом класса InetAddress

    • String getHostName() - возвращает строку, представляющую имя хоста, ассоциированного с объектом класса InetAddress

    Также существуют два подкласса - Inet4Address и Inet6Address. В большинстве случаев вы можете использовать класс InetAddress, поскольку класс приспособлен для обоих стилей.

    Класс ServerSocket

    Класс ServerSocket является слушателем и ожидает подключения клиентов. Класс предназначен для серверов.

    Класс Socket

    Класс Socket предназначен для клиентов.

    URL

    Класс URL представляет специальный интерфейс для доступа к информации по всей сети.

    Класс URLConnection

    Класс URLConnection предназначен для доступа к ресурсам на удалённом сервере. Установив соединение, вы можете просматривать свойства объекта.

    Методы:

    • int getContentLength() - возвращает размера в байтах содержимого объекта. Если размер недоступен, то возвращается -1

    • long getContentLenghLong() - возвращает размера в байтах содержимого объекта. Если размер недоступен, то возвращается -1

    • String getContentType() - возвращает тип содержимого по заголовку content-type или null

    • long getDate() - возвращает время и дату ответа в миллисекундах

    • InputStream getInputStream() - возвращает объект класса InputStream, который можно использовать для получения содержимого ресурса

    HttpURLConnection_Класс_HttpURLConnection'>Класс HttpURLConnection

    Класс HttpURLConnection является подклассом класса URLConnection и обеспечивает поддержку соединений по протоколу HTTP.

    Некоторые методы класса:

    • static boolean getFollowRedirects() - возвращает true, если автоматически следует перенаправление

    • String getRequestMethod() - возвращает строковое представление метода выполнения запроса. По умолчанию используется метод GET

    • int getResponseCode() - возвращает код ответа HTTP

    • String getResponseMessage() - возвращает сообщение ответа, ассоциированное с кодом ответа

    • void setRequestMethod(String method) - устанавливает метод, которым выполняются запросы HTTP. По умолчанию принят метод GET

    Знакомство с классом HttpURLConnection

    Для соединения с веб-серверами Android предлагает несколько способов взаимодействия. В новых проектах для современных устройств рекомендуется использовать класс HttpURLConnection, который мы с вами рассмотрим на примерах.

    Класс java.net.HttpURLConnection является подклассом java.net.URLConnection и позволяет реализовать работу по отправке и получении данных из сети по протоколу HTTP. Данные могут быть любого типа и длины. Данный класс следует использовать для отправки и получения потоковых данных, размеры которых нельзя заранее определить. Используя данный класс, вам не нужно думать о сокетах и реализовывать собственные способы общения между клиентом и сервером.

    Алгоритм использования следующий:

    • Получить объект HttpURLConnection через вызов URL.openConnection() и привести результат к HttpURLConnection

    • Подготовить необходимый запрос. Основное в запросе - сам сетевой адрес. Также в запросе можно указать различные метаданные: учётные данные, тип контента, куки сессии и т.п.

    • Опционально загрузить тело запроса. В этом случае используется метод setDoOutput(true). Передача данных, записанных в поток, возвращается через метод getOutputStream()

    • Прочитать ответ. Заголовок ответа обычно включает метаданные, такие как тип и длина контента, даты изменения, куки сессии. Прочитать данные из потока можно через метод getInputStream(). Если у ответа нет тела, то метод возвращает пустой поток.

    • Разорвать соединение. После прочтения ответа от сервера HttpURLConnection следует закрыть через вызов метода disconnect(). Тем самым вы освобождаете ресурсы, занимаемые соединением.

    Например, для получения страницы по адресу http://developer.alexanderklimov.ru/android/ можно использовать такой код:
    URL url = new URL("http://developer.alexanderklimov.ru/android/");

    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    try {

    InputStream in = new BufferedInputStream(urlConnection.getInputStream());

    readStream(in);

    finally {

    urlConnection.disconnect();

    }

    }

    По умолчанию HttpURLConnection использует метод GET. Для использования POST вызывайте setDoOutput(true) и посылайте данные через openOutputStream(). Другие HTTP-методы (OPTIONS, HEAD, PUT, DELETE and TRACE) настраиваются через метод setRequestMethod(String).

    Для работы через прокси-сервер используйте URL.openConnection(Proxy) при создании соединения.

    Каждый экземпляр HttpURLConnection может использоваться только для одной пары запроса/ответа. Операции с соединениями следует проводить в отдельном потоке.


    написать администратору сайта