Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Запрос POST с помощью Synapse: как дождаться результата?  [new]
crossa
Member

Откуда:
Сообщений: 54
Есть веб-страница сайта, на которой находится форма ввода текста и кнопка для отправки данных. При нажатии кнопки сайт получает текст из формы, обрабатывает (в этот момент на веб-странице отображается анимированная картинка LOADER.GIF) и на странице появляется ссылка на скачивание архива ZIP.

Пытаюсь реализовать это в своей программе: она должна отправлять текст на сайт как запрос POST и узнавать ссылку на скачивание архива.
var HTTP: THTTPSend;

URLData := 'text=' + EncodeURLElement(AnsiString(sText));
HTTP.Document.Write(Pointer(URLData)^, Length(URLData));
HTTP.MimeType := 'application/x-www-form-urlencoded';
if HTTP.HTTPMethod('POST', 'http://www.example.com') then
begin
     strlist.Clear;
     strlist.LoadFromStream(HTTP.Document);
end;

Запрос выполняется, но возвращается текст веб-страницы без ссылки на скачивание архива. Запрос возвращает HTML-текст с картинкой LOADER.GIF, то есть запрос не ждет, когда будет сформирован окончательный вариант веб-страницы с ссылкой на архив.

Как дождаться того момента, когда ссылка на скачивание файла появится на странице? Нужен какой-то repeat until, вот только как его реализовать? Подскажите, пожалуйста.
5 ноя 18, 15:56    [21724287]     Ответить | Цитировать Сообщить модератору
 Re: Запрос POST с помощью Synapse: как дождаться результата?  [new]
sql2012
Member

Откуда: РФ
Сообщений: 649
crossa,

сверяй запросы из браузера и делай как он
5 ноя 18, 17:51    [21724406]     Ответить | Цитировать Сообщить модератору
 Re: Запрос POST с помощью Synapse: как дождаться результата?  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3845
Первый делом рекомендую по F12 на вкладке "сеть" посмотреть последовательность http запросов -- наверняка там есть и нужный, который напрямую возвращает результат.

Если не поможет по какой-то причине (что очень редко), то надо смотреть код оригинальной страницы, на которой делается запрос. Наверняка там какой-нибудь javascript по таймеру запускается и обрабатывается результат. Рекомендую открыть браузер, нажать F12 и зучить, что вызывается при нажатии. В хроме-фаерфоксе можно прямо через код упасть внутри скрипт на событии и там смотреть.
5 ноя 18, 18:06    [21724422]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить