Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Работа с HTTP в Delphi

.doc
Скачиваний:
32
Добавлен:
10.05.2015
Размер:
40.96 Кб
Скачать

Работа с протоколом HTTP в Delphi

Часто возникают задачи, связанные с отправкой запросов на Web-сервер и получением ответов от него. Например, отправка данных через форму, получение какой-либо Web-страницы, или закачка файла с какого-либо сайта. Данные задачи решаются при помощи протокола HTTP.

В Delphi существует ряд различных классов и компонентов позволяющих реализовать обмен данными по протоколу HTTP. Один из наиболее часто используемых методов решения таких задач – использование компонентов Indy, в частности компонента IdHTTP (Находится на палитре компонентов “Indy Clients”).

Основные свойства компонента IdHTTP

Request

Объект класс TIdHTTPRequest, позволяет задавать заголовки HTTP запроса и дополнительные параметры.

Основные методы компонента IdHTTP

Post

Позволяет отправлять POST запрос на указанный URL. Существует шесть методов POST, которые принимают разные параметры, основные из низ:

Post(AURL: string; const ASource: TStrings): string; - отправляет список параметров заданных в переменной ASource на адрес заданный в AURL. Возвращает строку – тело ответа сервера.

Post(AURL: string; const ASource: TStream): string; - отправляет данные из потока ASource на адрес AURL. Возвращает строку – тело ответа сервера.

Get

Позволяет отправлять GET запрос на указанный URL. Существует две реализации данного метода:

procedure Get(AURL: string; const AResponseContent: TStream); - отправляет запрос на адрес AURL, ответ сервера записывается в поток AResponseContent.

function Get(AURL: string): string; - отправляет запрос на адрес AURL, возвращает ответ сервера в виде строки.

Пример отправки GET запроса на сервер

var

response: string;

begin

{

IdHTTP1 – компонент IdHTTP

Отправляем запрос на адрес http://www.yandex.ru

}

response := IdHTTP1.Get(‘http://www.yandex.ru’);

{

После вызова метода IdHTTP1.Get в строку response

помещается ответ сервера

}

end;

Пример отправки POST запроса на сервер

var

response, request: string;

begin

{

Строим XML, и сохраняем его в строку request

}

request := '<?xml version="1.0" encoding="UTF-8"?>';

request := request + '<root attribute="value">';

request := request + '<element>Value</element>';

request := request + '</root>';

{

Упаковываем строку запроса в поток данных TStringStream

и отправляем в POST запросе на адрес http://tusur.ru

}

response := IdHTTP1.Post('http://tusur.ru', TStringStream.Create(request));

{

После вызова метода IdHTTP1.Post в строку response

помещается ответ сервера

}

end;