setHttpMethodprocedure setHttpMethod(httpConn: http; method:string);
Устанавливает один из следующих типов запроса http:
| · | GET |
| · | POST |
| · | HEAD |
setHttpMethodprocedure setHttpMethod(httpConn: http; method:string);
Устанавливает один из следующих типов запроса http:
| · | GET |
| · | POST |
| · | HEAD |
sendHttpMessagefunction sendHttpMessage(httpConn: http): integer;
Эта функция посылает запрос http, ждёт ответа и возвращает код ответа или -1 в случае ошибки. Со списком возвращаемых кодов можно ознакомиться здесь (обычно, 200 означает что всё нормально).
openHttpfunction openHttp(httpConn: http; url: string):boolean;
Подключает соединение 'httpConn' к адресу 'url'. Адрес должен быть представлен в форме: "http://servername[:port][/file]". Возвращает 'true' в случае успешного подключения или 'false' в случае неудачи.
isHttpOpenfunction isHttpOpen(httpConn: http):boolean;
Возвращает 'true' если соединение 'httpConn' открыто.
getHttpResponsefunction getHttpResponse(httpConn: http):string;
Возвращает данные, посланные сервером в ответ на запрос http.
getHttpHeaderfunction getHttpHeader(httpConn: http; name: string): string;
Возвращает значение заголовка 'name' запроса http. Например, если запрос содержит заголовок "Content-type: text/plain", вызвав функцию со значением "Content-type" параметра 'name', мы получим "text/plain".
closeHttpprocedure closeHttp(httpConn: http);
Закрывает открытое соединение http.
addHttpHeaderprocedure addHttpHeader(httpConn: http; name, value:string);
Вставляет заголовок в запрос http. Например, чтобы добавить заголовок "Accept-encoding: gzip, none", вызовите функцию со значением "Accept-encoding" у параметра 'name' и значением "gzip, none" у параметра 'value'.
addHttpBodyprocedure addHttpBody(httpConn: http; data: string);
Добавляет строку 'data' к телу запроса http. Непустое тело может содержать только запрос типа POST.
Тип httpMIDletPascal предоставляет базовые вазможности для работы с HTTP. Соединения HTTP идентифицируются переменными соответствующего типа, 'http'. У HTTP следующий жизненный цикл:
| · | открытие подключения к удалённому web-серверу |
| · | установка метода запроса http |
| · | добавление полей-заголовков запроса (необязательно) |
| · | добавление данных в тело запроса (только в случае, если запрос имеет тип POST) |
| · | отправка запроса и ожидание ответа от сервера |
| · | получение желаемых полей-заголовков из ответа |
| · | получение данных ответа |
| · | закрытие соединения |
Следующий пример демонстрирует возможности соединения по HTTP:
var conn: http;
htmlBody: string;
contentType: string;
begin
if not openHttp(conn, 'http://www.google.com') then halt;
setHttpMethod(conn, GET);
addHttpHeader(conn, 'User-agent', 'MIDletPascal browser');
if sendHttpMessage(conn) <> 200 then halt;
htmlBody := getHttpResponse(conn);
contentType := getHttpHeader(conn, 'Content-type');
closeHttp(conn);
end.
Встроенный эмулятор не поддерживает соединения по HTTP. Для тестирования HTTP без телефона рекомендуется использовать эмулятор Wireless Toolkit от Sun.