getURL Загрузка по URL (HTTP, HTTPS, FTP...)

## Синтаксис

    filename = getURL(URL);
                [filename, [content]] = getURL(URL [, targetDir [, username [, password]]]]);
                [filename, [content]] = getURL(URL [, targetFile [, username [, password]]]]);

## Аргументы

URL

  строка: ссылка URL. Поддерживаются и тестируются: HTTP, HTTPS, FTP (IPv4 и IPv6)

targetDir

  Необязательный строковый параметр: указывает в какой директории будет сохранён файл (если пустой, то текущая директория)

targetFile

  Необязательный строковый параметр: указывает где (и под каким именем) данный файл будет сохранён (если пустой, то текущая директория)

username

  Необязательный строковый параметр: имя пользователя для вебсайтов, которые запрашивают аутентификацию

password

  Необязательный строковый параметр: пароль для вебсайтов, которые запрашивают аутентификацию

filename

  строка: путь до загруженного файла

content

  строка: содержимое загруженного файла

## Описание

Загрузка файла по ссылке URL.

Функция `getURL` загрузит файл по удалённой ссылке URL. Однако, в некоторых обстоятельствах (например, http://www.scilab.org/), имя файла не предоставляется самой ссылкой URL и `getURL` переименует файл в index.html.

`content` содержит содержимое страницы, указанной в URL.

Эта функция основана на библиотеке curl.

`username` and `password` могут быть определены для тех вебсайтов, которые запрашивают аутентификацию. Используемый метод аутентификации `CURLAUTH_ANY`, указываемый параметром `CURLOPT_HTTPAUTH` библиотеки `libcurl`.

`getURL` поддерживает IPv6 (и, очевидно, IPv4) по умолчанию.

В этой версии доступна настройка прокси, она может быть изменена в настройках в разделе "Интернет".

Опция curl CURLOPT_FOLLOWLOCATION активируется для того, чтобы убедиться в загрузке по ссылке URL.

`getURL` основана на libcurl. Версия этой библиотеки в официальном двоичном файле Scilab, скомпилированным с поддержкой HTTP, HTTPS, FTP и FTPS. Если Scilab установлен через систему пакетов в дистрибутиве, вероятно, что будут работать и иные протоколы, а не только HTTP, HTTPS и FTPS. Однако, они недостаточно протестированы.

## Примеры

                // Будет загружен URL с именем файла maths_simulation
                getURL("http://www.scilab.org/products/scilab/features/maths_simulation");

                // Сохранить домашнюю страницу Scilab в текущей директории (и переименуем файл)
                getURL("http://www.scilab.org","scilab_homepage.html");

                // Загрузка примера Scilab и исполнение его
                myFile = getURL("http://fileexchange.scilab.org/toolboxes/contour3d/10.03/files/contour3d.sci",TMPDIR)
                exec(myFile);
                contour3d();

                // Используем аутентификацию
                getURL("http://httpbin.org/basic-auth/user/passwd",TMPDIR+"/testfile.html","user","passwd")

                // Необходимо подключение IPv6
                getURL("http://ipv6.google.com/intl/en_com/images/srpr/logo3w.png")

                // Получение контента
                [myFile, content] = getURL("http://fileexchange.scilab.org/toolboxes/contour3d/10.03/files/contour3d.sci",TMPDIR)

## Смотрите также

- splitURL

## История

5.5.0 Введена функция `getURL()`