- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Платформа J2Me - Автор неизвестен
Шрифт:
Интервал:
Закладка:
Интерфейс ContentConnection представляет собой общие характеристики семейства протоколов уровня приложений, которые обычно определяют атрибуты, описывающие транспортируемые ими данные. Более точно, ContentConnection определяет несколько базовых атрибутов, которые являются общими для всех таких соединений содержимого соединений. В таблице 8.3 перечислены три метода, определяемые ContentConnection. Вы можете видеть, как они применяются по отношению к семейству протоколов уровня приложений.
Таблица 8.3. Методы интерфейса ContentConnection
Имя метода ContentConnection — Описание
String getEncoding() — Выдает значение поля, показывающего набор символов шифрования, используемых для представления содержимого сообщения
long getLength() — Выдает длину сообщения
String getType() — Выдает тип содержимого
Протоколы, которые могут быть представлены этим интерфейсом, обычно используют некоторого рода пометку атрибута, не зависящую от содержимого, которое они транспортируют. Примером такого протокола является протокол HTTP.
Неудивительно, что интерфейс ContentConnection имеет один подинтерфейс, HttpConnection, который представляет соединения, использующие протокол HTTP. Интерфейс HttpConnection определяется MIDP, а не CLDC. HTTP является протоколом содержимого соединений уровня приложений. Вы, несомненно, понимаете, что три метода интерфейса ContentConnection, перечисленные в таблице 8.3, применимы к HTTP.
Интерфейс HttpConnection расширяет эту абстракцию до более конкретного описания атрибутов соединений протокола HTTP. Он поддерживает передачу запросов и получение откликов, а также возможность извлекать и анализировать поля HTTP как для сообщения запроса, так и для ответа. Он также предусматривает возможность получения информации о самом соединении. В таблице 8.4 перечислены методы интерфейса HttpConnection.
Таблица 8.4. Методы интерфейса HttpConnection
Название метода HttpConnection — Описание
long getDate () — Выдает значение поля заголовка даты
long getExpiration () — Выдает значение поля заголовка Expires
String getFile () — Выдает значение поля URL данного соединения
String getHeaderField (int n) — Выдает значение части пронумерованного поля заголовка ключ-значение
String getHeaderField (String name) — Выдает значение поля заголовка с указанным именем ключа. В качестве аргумента приемлемо любое действительное имя поля HTTP
long getHeaderFieldDate (String name, long def) — Выдает значение (анализируемое как дата) поля заголовка с указанным ключом
int getHeaderFieldlnt (String name, int def) — Выдает значение (анализируемое как целое) названного поля заголовка
String getHeaderFieldKey (int n) — Выдает часть ключа пронумерованного поля заголовка
String getHost () — Выдает часть HOST URL данного соединения
long getLastModified () — Выдает значение поля LastModified URL.
int getPort () — Выдает значение поля порта URL данного соединения
String getProtocol () — Выдает имя протокола URL
String getQuery () — Выдает область запроса URL, часть после первого"?" в URL
String getReff () — Выдает часть ссылки URL
String getRequestMethod () — Выдает метод текущего запроса
String getRequestProperty (String key) — Выдает значение указанного свойства общего запроса
int getResponseCode () — Выдает код состояния отклика v HTTP
String getResponseMessage () — Выдает сообщение отклика HTTP, связанное с кодом состояния отклика
String getURL () — Выдает строковую форму URL
void setRequestMethod (String method) — Устанавливает метод для URL; приемлемыми значениями являютсяGET, POST И HEAD
void setRequestProperty (String key, String value) — Устанавливает значение указанного свойства общего запроса
В дополнение к этим методам интерфейс HttpConnection также определяет полную совокупность констант, представляющих коды статуса и ошибок HTTP, которые показаны в таблице 8.5. Для получения дополнительной информации о константах кода статуса смотрите HTTP 1.1, спецификацию RFC2616, которую можно найти по адресу http://www.w3c.org или на http://www.ietf.org.
Таблица 8.5. Определения констант интерфейса HttpConnection
Константа HttpConnection — Описание
static String GET — Представляет метод запроса GET
static String HEAD — Представляет метод запроса HEAD
static int HTTP_ACCEPTED — HTTP статус 202
static int HTTP_BAD_GATEWAY — HTTP статус 502
static int HTTP_BAD_METHOD — HTTP статус 405
static int HTTP_BAD_REQUEST — HTTP статус 400
static int HTTP_CLIENT_TIMEOUT — HTTP статус 408
static int HTTP_CONFLICT — HTTP статус 409
static int HTTP_CREATED — HTTP статус 201
static int HTTP_ENTITY_TOO_LARGE — HTTP статус 413
static int HTTP_EXPECT_FAILED — HTTP статус 41 7
static int HTTP_FORBIDDEN — HTTP статус 403
static int HTTP_GATEWAY_TIMEOUT — HTTP статус 504
static int HTTP_GONE — HTTP статус 410
static int HTTP_INTERNAL_ERROR — HTTP статус 500
static int HTTP_LENGTH_REQUIRED — HTTP статус 41 1
static int HTTP_MOVED_PERM — HTTP статус 301
static int HTTP_MOVED_TEMP — HTTP статус 302
static int HTTP_MULT_CHOICE — HTTP статус 300
static int HTTP_NO_CONTENT — HTTP статус 204
static int HTTP_NOT_ACCEPTABLE — HTTP статус 406
static int HTTP_NOT_AUTHORITATIVE — HTTP статус 203
static int HTTP_NOT_FOUND — HTTP статус 404
static int HTTP_NOT_IMPLEMENTED — HTTP статус 501
static int HTTP_NOT_MODIFIED — HTTP статус 304
static int HTTP_OK — HTTP статус 200
static int HTTP_PARTIAL — HTTP статус 20В
static int HTTP_PAYMENT_REQUIRED — HTTP статус 402
static int HTTP_PRECON_FAILED — HTTP статус 412
static int HTTP_PROXY_AUTH — HTTP статус 407
static int HTTP_REQ_TOO_LONG — HTTP статус 414
static int HTTP_RESET — HTTP статус 205
static int HTTP_SEE_OTHER — HTTP статус 303
static int HTTP_TEMP_REDIRECT — HTTP статус 307
static int HTTP_UNAUTHORIZED — HTTP статус 401
static int HTTP_UNAVAILABLE — HTTP статус 503
static int HTTP_UNSUPPORTED_RANGE — HTTP статус 416
static int HTTP_UNSUPPORTED_TYPE — HTTP статус 41 5
static int HTTP_USE_PROXY — HTTP статус 305
static int HTTP_VERSION — HTTP статус 505
static String_HTTP_POST — Представляет метод запроса POST
Вы можете видеть, что интерфейс HttpConnection предоставляет наибольший набор функциональных возможностей из всех интерфейсов. HTTP является протоколом уровня приложений, наиболее часто поддерживаемым реализациями MIDP.
В листингах с 8.1 по 8.4 показан исходный код для простой программы, которая демонстрирует, как пользователь мобильного устройства может запрашивать ресурс HTTP с удаленного сервера. Вы можете найти, что эта программа не работает при выполнении за пределами вашего корпоративного брандмауэра, в зависимости от конфигураций сети вашей компании, брандмауэра и прокси-сервера. Вы можете быть ограничены до посещения URI ресурсов, расположенных в пределах вашей корпоративной сети.
Протокол HTTP определяет семантику, связанную с тем, что клиентам необходимо запрашивать ресурсы через прокси-сервер. Браузер может изменять URI пользователя, основываясь на настройках его прокси, и посылать измененный запрос на прокси-сервер, который перенаправляет его на исходный сервер. Программа не делает таких изменений URI, и поэтому она не может пересылать URI, как ожидается вашим прокси-сервером. Если вы не знаете, как браузер изменяет URI, у вас могут возникнуть сложности при доступе к URI, являющимся внешним по отношению к вашей корпоративной сети. Результат выразится в том, что программа, показанная в листинге 8.1, сбросит lOException.
Программа, показанная в листинге 8.1, отображает только метаинформацию о запрошенных ресурсах и не отображает сам ресурс. Она лишь запрашивает информацию заголовка для каждого ресурса, используя метод HEAD HTTP. Написание программы, которая отображала бы произвольное содержимое, было бы равноценно написанию целого браузера, что, очевидно, лежит за пределами темы данной книги. К счастью, некоторые компании предлагают HTTP-браузеры, которые работают на устройствах MIDP, так что вам не придется проделывать эту огромную работу.
Листинг 8.1. Программа ConnectionDemo определяет MID-лет, который отображает мета-информацию протокола HTTP, а именно значения полей заголовка HTTP. Программа использует команду HEAD для получения лишь мета информации, а не всей страницы
import javax.microedition.midlet.MI Diet;
import javax.microedition.lcdui.Display;
Этот класс определяет MID-лет для демонстрационной программы, которая запрашивает у пользователя URI, затем создает соединение HTTP с исходным сервером и извлекает ресурс. Программа использует объект Form, для того чтобы дать пользователю возможность ввести URI.
*/
public class ConnectionDemo extends MID-лет
}

