Здравствуйте, BeeNokle, Вы писали:
BN>Здравствуйте, axon_an, Вы писали:
_>>Доброе время суток!
_>> Мне нужно качать файл http://users.ints.net/donalex/Ostatuli.zip три раза в день (ессно пароль и логин я знаю), как мне автоматизировать это действо? Пользую BDS2005, хотя стоит и D7. Слышал что можно с помощью библиотеки Indy, но какой именно компонент и как? Или если через Wininet, то куда там вписывать логин/пароль?
BN>Конечно с помощью Инди. Авторизацию можно пройти указав username и password в св-ве Request:
BN>idHTTP.request.username:='';
BN>...
BN>А потом делаете постом или гетом. Лучше постом, он возвращает поток сразу, который вы и сохранишь в файл.
BN>Доп. информацию найдете в справке, тем более что в D2005 они достаточно удобная, и по инди там есть информация тоже!
Я попробовал сделать так:
var
idhttp: TIdHTTP;
stream: TFileStream;
begin
idhttp := TIdHTTP.Create(nil);
try
stream := TFileStream.Create('c:\Ostatuli.zip', fmCreate);
try
idhttp.request.username := 'my_login';
idhttp.request.Password := 'my_password';
idhttp.get('http://users.ints.net/donalex/Ostatuli.zip', stream);
finally
stream.Free;
end;
finally
idhttp.Free;
end;
end;
На что оно мне сказало:
Project raized exception class EIdHTTPProtocolExceptionwith message 'HTTP/1.0 401 Unauthorized'. Process stopped. Use Step or Run to continue.
Как ещё можно, или где сдесь баг (вариант ответа — в ДНК не устроит)?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>