Текущий архив: 2009.03.29;
Скачать: CL | DM;
Вниз
WinInet и закачка файла из Интернет через прокси с авторизацией. Найти похожие ветки
← →
cruiser © (2009-02-02 22:03) [0]Уважаемые мастера! Данный код закачивает некий файл с сервера в Интернет. Подскажите, "сбился с ног" в поисках ответа, но не могу никак понять как же мне в данном коде указать wininet пароль и логин юзера для авторизации на прокси-сервере. Ничего не получается. Поиск по яндексам\рамблерам\гуглам к ответу не привел.
function DownloadFile(const FileURL, FileName: String): Cardinal;
var
hSession, hFile: HInternet;
Buffer: array[1..1024] of byte;
BufferLen, fSize: LongWord;
f: File;
access:cardinal;
proxy, user, pass: pchar;
begin
Result := 0;
if form7.checkbox4.checked then access:= INTERNET_OPEN_TYPE_PROXY else access:=INTERNET_OPEN_TYPE_PRECONFIG;
if form7.CheckBox1.Checked then
proxy:= pchar(form7.edit1.Text) else proxy:=nil;
if form7.CheckBox2.Checked then
user:= pchar(form7.edit2.Text) else user:=nil;
if form7.CheckBox3.Checked then
pass:= pchar(form7.edit3.Text) else pass:=nil;
hSession := InternetOpen("GetURL",
access,
proxy,
nil,
0);
// пробуем указать логин-пароль
if form7.CheckBox2.Checked then
InternetSetOption (hSession, INTERNET_OPTION_PROXY_USERNAME,
user, lstrlen (user));
if form7.CheckBox2.Checked then
InternetSetOption (hSession, INTERNET_OPTION_PROXY_PASSWORD,
pass, lstrlen (pass));
// вызываем сессию еще раз (по идее должны подхватиться параметры заданные SetOptions)
hSession := InternetOpen(GetURL,
access,
proxy ,nil,
0);
if Assigned(hSession) then begin
hFile := InternetOpenURL(hSession, PChar(FileURL),
nil, 0,
INTERNET_FLAG_RELOAD, 0);
if Assigned(hFile) then begin
AssignFile(f, FileName);
Rewrite(f,1);
fSize := 0;
repeat
InternetReadFile(hFile, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen);
fSize := fSize + BufferLen;
until (BufferLen = 0);
CloseFile(f);
Result := fSize;
InternetCloseHandle(hFile);
end;
InternetCloseHandle(hSession);
end;
end;
Заранее благодарю за ответы! D2009
← →
Rouse_ © (2009-02-03 11:49) [1]Вот это попробуй, там лоин и пароль в параметрах функции задается:
http://rouse.drkb.ru/network.php#proxyload
← →
cruiser © (2009-02-03 13:16) [2]Спасибо. Нужный код. Я так понял что нужна именно связка InternetOpen- InternetConnect-httpQueryReqest... Попробую привязать к своему коду. Единственный вопрос - как тот проект можно по ссылке можно использовать в другом коде? Т.е. подключать через uses или что?
← →
Rouse_ © (2009-02-03 17:42) [3]Выдираешь саму функцию и используешь :) В виде отдельного модуля я не оформлял.
← →
cruiser © (2009-02-03 18:04) [4]Спасибо. Буду пробовать.
Страницы: 1 вся ветка
Текущий архив: 2009.03.29;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.05 c