заключается в транспортировке полезной нагрузки данными. Идея, лежащая в основе интерфейса ContentConnection, заключается в том, что он представляет соединения, которые могут описать свое содержимое некоторым образом, обычно с помощью наличия атрибутов метаинформации, определенных протоколом. Интерфейс ContentConnection предоставляет подробную информацию об извлечении этой информации из потока, так что вам не придется знать синтаксис или семантику протокола реализации.
Интерфейс ContentConnection представляет собой общие характеристики семейства протоколов уровня приложений, которые обычно определяют атрибуты, описывающие транспортируемые ими данные. Более точно, 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.
Название метода 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.
Константа 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