Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
6-1201613360
Yurij-7
2008-01-29 16:29
2009.03.29
Отправка писем через Indy


1-1207898982
Альф
2008-04-11 11:29
2009.03.29
Как обрубить зависший ОСХ ?


2-1233240872
Fonts
2009-01-29 17:54
2009.03.29
Про фонты дисплея


15-1232528030
deadteachers
2009-01-21 11:53
2009.03.29
RS-232


15-1232421567
Slider007
2009-01-20 06:19
2009.03.29
С днем рождения ! 20 января 2009 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский