Функция InetGet

         Описание функции


InetGet

Загружает файл из интернета, используя протоколы HTTP, HTTPS или FTP и сохраняет его на диске.

InetGet ( "URL" [, "filename" [, options = 0 [, background = 0 ]]] )

Параметры

URL Путь к файлу для загрузки. См. примечания ниже.
filename [необязательный] Имя локального файла (куда будет загружен файл).
options [необязательный]
0 = (по умолчанию) получить файл из кэша, если это возможно.
1 = принудительно перезагрузить с удалённого сайта.
2 = игнорировать все SSL ошибки (при использовании соединения HTTPS).
4 = использовать ASCII при передаче файлов с помощью протокола FTP (не может быть совмещено с флагом 8).
8 = использовать BINARY при передаче файлов с помощью протокола FTP (не может быть совмещено с флагом 4). Это режим передачи файлов по умолчанию, если не указано иное.
16 = пропускать проверку соединения (см. примечания).
background [необязательный]
0 = (по умолчанию) подождать, пока загрузка не будет полностью завершена, прежде чем продолжить выполнение скрипта.
1 = не ждать завершения загрузки и продолжать загрузку в фоновом режиме (см. примечания).

Возвращаемое значение

Возвращаемое значение зависит от параметра background:
Успех:В фоне (1): функция возвращает дескриптор. Этот дескриптор может использоваться в функции InetGetInfo(). Он должен быть закрыт с помощью InetClose().
Ожидание (0): число загруженных байтов.
Ошибка:В фоне (1): функция возвращает дескриптор. Чтобы узнать, произошли ли с загрузкой какие-нибудь проблемы, используйте функцию InetGetInfo(). Дескриптор должен быть закрыт с помощью функции InetClose().
Ожидание (0): устанавливает значение @error не равным нулю и возвращает 0.

Примечания

Для работы этой функции должен быть установлен Internet Explorer версии 3 или выше.

Параметр URL должен быть в форме "http://www.somesite.com/path/file.html" - так же, как и любой путь в адресной строке вашего браузера.

Чтобы использовать имя пользователя и пароль при соединении, достаточно просто перед адресом сервера добавить префикс "имя_пользователя:пароль@", например, "http://пользователь:пароль@www.somesite.com"


По поводу параметра "background"

По умолчанию, прежде чем вернуть значение, функция ждёт полного завершения загрузки. Если параметр background равен 1, функция возвращает значение немедленно и загрузка продолжается в фоновом режиме. Функция InetGetInfo() может проверять статус загрузки. Она принимает в качестве параметра дескриптор, возвращённый функцией InetGet().

Множественные загрузки поддерживаются (в фоновом режиме).

Чтобы прекратить загрузку, следует вызвать InetClose(), передав ей в качестве параметра дескриптор, возвращённый InetGet().

По умолчанию, AutoIt проверяет наличие соединения, прежде чем начать загрузку. Для пользователей dial-up это вызовет окно с запросом соединения или дозвона (в зависимости от настроек системы). Опция 16 отменяет это поведение. Отмена проверки соединения может быть полезна, если имеется постоянное подключение (Broadband, LAN). Однако это также необходимо, чтобы можно было обойти некоторые проблемы в Windows Vista и Windows 7.

См. также

InetGetSize, InetRead, InetGetInfo, InetClose, HttpSetProxy, FtpSetProxy, HttpSetUserAgent

Пример

InetGet("http://www.mozilla.org", @TempDir & "\mozilla.html")
InetGet("http://www.autoitscript.com", @TempDir & "autoitscript.html", 1)
InetGet("ftp://ftp.mozilla.org/pub/mozilla.org/README", @TempDir & "\Mozilla-README.txt", 1)

; Улучшенный пример - скачивание в фоновом режиме
Local $hDownload = InetGet("http://www.autoitscript.com/autoit3/files/beta/update.dat", @TempDir & "\update.dat", 1, 1)
Do
    Sleep(250)
Until InetGetInfo($hDownload, 2) ; Проверка завершения загрузки
Local $nBytes = InetGetInfo($hDownload, 0)
InetClose($hDownload) ; Закрыть дескриптор, чтобы освободить ресурсы.
MsgBox(4096, "", "Количество прочитанных байт: " & $nBytes)