Чтение онлайн

на главную - закладки

Жанры

Шрифт:

Если вы запустите программу, показанную в листингах 8.1–8.4, на эмуляторе другого производителя, вы увидите другое имя класса. Таким образом опознается реализация данного производителя интерфейса HttpConnection. Все определяемые протоколом классы зависят от реализации.

Модель состояний соединения HTTP. Соединения HTTP могут находиться в одном из трех состояний в течение их жизненного цикла. Эта модель состояний отражает природу запроса-отклика протокола HTTP. Это следующие три состояния:

— Установка — создан объект соединения, но соединения с исходным сервером еще нет.

— Установлено — соединение с сервером было установлено, параметры запроса были посланы

на сервер, и объект соединения ожидает отклика с сервера.

— Отключено — соединение было разорвано. Последующие вызовы методов соединения сбрасывают 10Exception.

На рисунке 8.3 показана диаграмма перемещения из состояния в состояние объектов соединения HTTP.

Рис. 8.3.Объекты HttpConnection переходят в три различных состояния во время своего существования

Объект соединения существует в состоянии установки при создании его экземпляра. На данный момент строка запроса не была создана. Чтобы создать запрос, вы должны установить метод HTTP и заголовки запроса. Эти значения устанавливаются с помощью методов, перечисленных в таблице 8.6. Прежде чем соединение сможет войти в состояние «установлено», — прежде, чем оно пошлет запрос серверу и получит ответ, — оно должно установить параметры запроса HTTP, то есть создать сообщение запроса. Вызов этих методов, однако, не приведет к переходу в другое состояние.

Соединение переходит в состояние «установлено», когда вызваны любые из методов, перечисленных в таблице 8.7. Состояние установленного соединения представляет собой период между временем, когда запрос был послан на сервер, и временем, когда либо клиент, либо сервер прервали соединение. Вы можете видеть, что все методы, показанные в таблице 8.7, работают с извлечением данных из ответного сообщения. Чтобы извлечь данные, соединение с сервером должно быть действующим, чтобы клиент получил ответное сообщение.

Таблица 8.6. Методы интерфейса HttpConnection для создания запроса HTTP

Название метода HttpConnection — Описание

void setRequestMethod (String method) — Устанавливает метод запроса HTTP, либо HEAD, либо POST, либо GET

void setRequestProperty (String key, String value) — Включает в запрос указанное поле заголовка со значением, установленным на value

Таблица 8.7. Методы интерфейса HttpConnection, которые позволяют соединению перейти в состояние «установлено»

Название метода HttpConnection — Описание

InputStream openlnputStream — Открывает и выдает ссылку на InputStream (происходит от InputConnection)

OutputStream openOutputStream — Открывает и выдает OutputStream для соединения (происходит из OutputConnection)

DatalnputStream openData!nputStream — Открывает и выдает ссылку на DatalnputStream (происходит из InputConnection)

DataOutputStream openDataOutputStream — Открывает и выдает ссылку на DataOutputStream (происходит изOutputConnection)

long getDate — Получает значение поля заголовка date

String getEncoding — Получает строку, которая описывает шифрование содержимого в ответе (происходит от ContentConnection]

long getExpiration — Получает значение поля заголовка expires

String getHeaderField (String name) — Получает значение указанного поля заголовка

long getHeaderFieldDate (String name, long def) —

Получает значение указанного поля заголовка. Значение анализируется как число

String getHeaderFieldlnt (String name, int def) — Получает значение указанного поля заголовка. Значение анализируется как число

String getHeaderFieldKey (int n) — Получает указанное поле заголовка. Аргумент представляет собой индекс поля заголовка

long getLastModified — Получает значение поля заголовка last-modified

long getLength — Извлекает длину поля заголовка.

int getResponseCode — Получает код состояния отклика HTTP

String getResponseMessage — Получает ответное сообщение HTTP

String getType — Получает тип содержимого, предоставляемого сервером (происходит из ContentConnection)

Когда соединение находится в состоянии «установлено», вы можете лишь извлекать из него данные либо закрыть его. Вы можете задействовать методы, перечисленные в таблицах 8.7 и 8.9. Методы, показанные в таблице 8.8, извлекают различные части ответа HTTP, за исключением метода close , который разрывает соединение.

Если соединение находится в состоянии «установлено», вы можете больше не активизировать методы, показанные в таблице 8.6. Вы не можете переустановить параметры запроса, что означает, что вы не можете снова использовать объект соединения для доступа к нескольким различным URI. Вы вынуждены создавать экземпляр нового соединения, пересылая новый URI в вызов Connector.ореn. Кстати, либо клиент может прервать соединение после получения отклика, либо удаленный сервер может разорвать соединение послелосылки этого отклика.

Обратите внимание, что в листинге 8.4 порядок, в котором поля заголовков вставляются в сообщения запроса или извлекаются из ответного сообщения сервера, несущественен. Класс соединения имеет дело с абстракциями создания правильно сформированных сообщений HTTP и анализа ответов HTTP.

Таблица 8.8. Методы интерфейса HttpConnection, вызываемые в состоянии «установлено»

Название метода HttpConnection — Описание

void close — Прерывает соединение (происходит из интерфейса Connection)

String getFile — Получает поле <file> URL данного соединения

String getHost — Получает поле <host> URL данного соединения

int getPort — Получает поле <port> URL данного соединения

String getProtocol — Получает поле <protocol> URL данного соединения

String getQuery — Получает строку запроса URL данного соединения

String getRequestMethodf — Получает текущий метод запроса (GET, POST и так далее)

String getRequestProperty (String key) — Получает значение свойства указанного общего запроса данного соединения

String getRef — Получает поле <ref> URL данного соединения

String getURL — Получает полный URL данного соединения как строковое значение

Использование соединений содержимого соединений. Сила, стоящая за использованием стандартных механизмов соединений содержимого соединений, заключается в том, что не требуется собственного проектирования для создания либо механизма доступа, либо согласованного формата полезного содержимого сообщений. Эта стандартизация служит мотивом поддержки механизма соединения HTTP в MIDP. HTTP является наиболее распространенным стандартным протоколом программного уровня в Интернете на сегодняшний день. Он дает вам возможность получать доступ к большому количеству разнообразных сетевых служб, поскольку поддерживает транспортировку произвольных данных с помощью своего механизма тегирования типа MIME.

Поделиться:
Популярные книги

Эволюционер из трущоб. Том 6

Панарин Антон
6. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эволюционер из трущоб. Том 6

Замуж за принца

Блэквелл Элизабет
Любовные романы:
исторические любовные романы
8.53
рейтинг книги
Замуж за принца

Террор и демократия в эпоху Сталина. Социальная динамика репрессий

Голдман Венди З.
История сталинизма
Научно-образовательная:
история
5.00
рейтинг книги
Террор и демократия в эпоху Сталина. Социальная динамика репрессий

Газлайтер. Том 6

Володин Григорий Григорьевич
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Любовь… и еще раз любовь (Сборник)

Морган Рэй
Любовные романы:
короткие любовные романы
7.62
рейтинг книги
Любовь… и еще раз любовь (Сборник)

Чужак

Листратов Валерий
1. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.25
рейтинг книги
Чужак

Одиссея самурая, Командир японского эсминца

Хара Тамеичи
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Одиссея самурая, Командир японского эсминца

Эдуард Стрельцов

Галедин Владимир Игоревич
1668. Жизнь замечательных людей
Проза:
историческая проза
5.00
рейтинг книги
Эдуард Стрельцов

Антракт. Поминки. Жизнеописание. Шатало

Эдлис Юлиу
5.00
рейтинг книги
Антракт. Поминки. Жизнеописание. Шатало

Избранные письма. Том 2

Немирович-Данченко Владимир Иванович
Документальная литература:
публицистика
5.00
рейтинг книги
Избранные письма. Том 2

Моряк с Балтики

Теннов Владимир Павлович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Моряк с Балтики

Я еще царь. Книга XXX

Дрейк Сириус
30. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
5.75
рейтинг книги
Я еще царь. Книга XXX

Тринадцатый

NikL
1. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
7.33
рейтинг книги
Тринадцатый

Тринадцатый IV

NikL
4. Видящий смерть
Фантастика:
боевая фантастика
попаданцы
6.25
рейтинг книги
Тринадцатый IV