Как скачать файл через Proxy

Советы » Файлы и Интернет » Как скачать файл через Proxy

DownloadFile('http://some.com/some.zip', 'c:some.zip');

function

DownloadFile(const

FileURL, FileName: String

): Cardinal; var

hSession, hFile: HInternet; Buffer: array

[1..1024] of

Byte; BufferLen, fSize: LongWord; f: File

; begin

Result := 0; hSession := InternetOpen('STEROID Download', INTERNET_OPEN_TYPE_PRECONFIG, nil

, 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

;

Комментарий:

function

InternetOpen(lpszAgent: PChar; dwAccessType: DWORD; lpszProxy, lpszProxyBypass: PChar; dwFlags: DWORD): HINTERNET; stdcall

;

  • lpszAgent - строка символов, которая передается серверу и идентифицирует программное обеспечение, пославшее запрос.
  • dwAccessType
    • INTERNET_OPEN_TYPE_DIRECT : обрабатывает все имена хостов локально.
    • INTERNET_OPEN_TYPE_PRECONFIG : берет установки из реестра.
    • INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY - берет установки из реестра и предотвращает запуск Jscript или Internet Setup (INS) файлов.
    • ! INTERNET_OPEN_TYPE_PROXY : использование прокси-сервера. В случае неудачи использует INTERNET_OPEN_TYPE_DIRECT.
  • LpszProxy - адрес прокси-сервера. Игнорируется только если параметр dwAccessType отличается от INTERNET_OPEN_TYPE_PROXY.
  • LpszProxyBypass - список имен или IP- адресов, соединяться с которыми нужно в обход прокси-сервера. В списке допускаются шаблоны. Так же, как и предыдущий параметр, не может содержать пустой строки. Если dwAccessType отличен от INTERNET_OPEN_TYPE_PROXY, то значения игнорируются, и параметр можно установить в nil.
  • DwFlags задает параметры, влияющие на поведение Internet- функций. Возможно применение комбинации из следующих разрешенных значений: INTERNET_FLAG_ASYNC, INTERNET_FLAG_FROM_CACHE, INTERNET_FLAG_OFFLINE.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com