Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.049 c
15-1233322041
Кто б сомневался
2009-01-30 16:27
2009.03.29
Функции сравнения строк, почему не так?


2-1233218140
arhis
2009-01-29 11:35
2009.03.29
Закрытие программы


15-1232343358
Nasty
2009-01-19 08:35
2009.03.29
DVD RW КОД 39


2-1233132780
Валера
2009-01-28 11:53
2009.03.29
Перевод значения в бинарный код


6-1201601068
Maloj2007
2008-01-29 13:04
2009.03.29
Отправка пакетов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский