Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > WebBrowser


Автор: GSV 22.11.2007, 12:34
Всем доброго!
Использую Delphi 7.
Есть страничка (именно страничка, а не ссылка на файл) в инете, при переходе (в IE) на неё формируется файл и предлагается его сохранить.
Если использую WebBrowser1.Navigate(<адрес страницы>) выскакивает тоже окно с предложением сохранить.
Как сделать так, чтобы окно это не появлялось и сохранять в уже конкретный файл. 

Автор: Snowy 22.11.2007, 12:39
Скачать его самому и сохранить.
Без участия WB. 
IE просто не имеет права делать это по тихому...

Автор: GSV 22.11.2007, 12:47
Имя файла допустим известно, но файла такого там нет. Он генерится, если перейти по ссылке.
В адресе передаются параметры, от которых зависит наполнение этого файла (даты периода):
http://www.&lt;...&gt;day1=20070901&day2=20071122

Автор: Snowy 22.11.2007, 12:58
Файл обязан генерится по запросу.
Он получается http запросом, в котором эти данные есть.
Просто нужно изучить запрос получения данного файла и сгенерировать такой же со своими данными.
По http запросу отдаётся всего один файл.
Поэтому связь со страницей может быть только на уровне печенья и параметров запроса. Не более.
Посему, страница не интересует.
Если дать правильно запрос, то файл будет получен одним запросом в любом случае.
Кроме случая кривых рук программера серверной части.
То есть случая, когда при входе на страницу реально генерируется файл.
Но в этом случае, создатель скрипта - идиот.

Автор: GSV 22.11.2007, 13:16
Т.е нужно передать правильно сформированный запрос, потом скачать файл с заданным именем (имя я знаю)?

Автор: Snowy 22.11.2007, 13:31
Файл ты получишь как раз в ответ на отправленный запрос.
А как отправлять сей запрос - выбор широкий.
На форуме куча вариантов.
Главное определить, что шлёт браузер и послать такие же данные.

Автор: GSV 22.11.2007, 13:35
Понял, спасибо, буду пробывать.

Автор: GSV 22.11.2007, 14:16
Пытаюсь послать запрос средством IdHTTP
Код

procedure TForm1.Button1Click(Sender: TObject);
var
    HTTP:TidHTTP;
    pagebody       :AnsiString;
begin
    HTTP:=TidHTTP.Create(nil);
    ShowMessage(HTTP.Get('http://www.rts.ru/ru/index/stat/dailyhistorycsv.html?code=RTSI&day1=20070901&day2=20071122'));

end;

Долго думает и выдаёт ошибку: Socket Error #10065 No route to host

Автор: Snowy 22.11.2007, 14:39
Значит нужно указать прокси сервер.

Автор: GSV 22.11.2007, 14:49
Блин, спасибо, всё заработало. smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)