Объект соединения существует в состоянии установки при создании его экземпляра. На данный момент строка запроса не была создана. Чтобы создать запрос, вы должны установить метод 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(). Кстати, либо клиент может прервать соединение после получения отклика, либо удаленный сервер может разорвать соединение послелосылки этого отклика.


Логин
Пароль
Запомнить меня