Статьи по Delphi (026)…

Как заполнить форму и отправить на сервер?

Как заполнить форму и отправить на сервер?

Для того, чтобы отправить форму на сервер, необходимо: 1. Найти форму в исходном тексте страницы. Для этога найти в исходном тексте страницы теги <form>...</form> Например:

Code: <form method=GET action=http://localhost/cgi-bin/mget?> <input type=text name=name1 value="имя" size="40" maxlength="20"><br> <input type=text name=name2 value="фамилия" size="40" maxlength="20"><br> <input type=submit> </form>

2. Определить метод, который используется для отправки данных. В указанном выше примере это "GET" - form method=GET 3. Найти поля, которые необходимо заполнить. В примере это:

Code: <input type=text name=name1 value="имя" size="40" maxlength="20"><br> <input type=text name=name2 value="фамилия" size="40" maxlength="20"><br>

4. Используя компоненты для работы с протоколом TCP/IP, сформировать строку запроса. Для определенности пусть это будет компонент TIdHTTP из пакета Indy, входящий в стандартный набор компонент Delphi. -------------- Сформируем строку для отправки на сервер для нашего примера: Пусть нам нужно отправить значениядля полей: имя=Vasya, фамилия=Pupkin. В этом случае запрос будет выглядеть так:

Code: Var. S: String; Begin. S := IdHTTP1.Get('http://localhost/cgi-bin/mget?name1=Vasya&name2=Pupkin').

В случае, если форма использует метод POST:

Code: <form method=POST action=http://localhost/cgi-bin/mget?> <input type=text name=name1 value="имя" size="40" maxlength="20"><br> <input type=text name=name2 value="фамилия" size="40" maxlength="20"><br> <input type=submit> </form>

формируем запрос для отправки несколько по-другому:

Code: Var. TL: TStringList; S: String; Begin. TL := TStringList.Create; TL.Add('name1=Vasya'); TL.Add('name2=Pupkin'); Try. S := IdHTTP1.Post('http://localhost/cgi-bin/mget',tL); Finally. TL.Free; End;

Взято из http://forum.sources.ru.

Автор: Демо.

©Drkb::03584.