HTTP.TestConnection

boolean HTTP.TestConnection ( string URL,
number Timeout = 20,
number Port = 80,
table AuthData = nil,
table ProxyData = nil )
Примеры

Описание

Проверяет есть ли у пользователя соединение с Интернетом.

Примечание: Для загрузки по умолчанию будут применены установки прокси по умолчанию из текущих настроек Internet Explorer, которые являются рекомендуемыми. Тем не менее, если нужны другие настройки прокси, они могут быть переданы через параметр ProxyData.

Совет: Если это действие дает ошибку, можно получить подробности указанной HTTP ошибки при помощи действия HTTP.GetHTTPErrorInfo.

Параметры

URL

(строка) Полный URL-адрес, используемый для проверки Интернет соединения. Действие будет пытаться соединиться с этим URL-адресом при определении доступности соединения.

Примечание: Если URL-адрес включает перенаправление, первоначальное соединение будет показано успешно, а с URL-адресом перенаправления не будет соединения.

Timeout

(число) Максимальное время в секундах, в течении которого действие будет ожидать ответа после попытки соединения. Значение по умолчанию равно 20.

Примечание: Значения тайм-аута интерпретируются различными способами во время связи клиента с сервером. В результате фактический тайм-аут, используемый соединением, может отличаться от указанного значения.

Port

(число) Порт для подключения. В большинстве случаев подходит значение по умолчанию, равное 80.

AuthData

(таблица) Таблица содержащая основную информацию HTTP аутентификации, которая может быть использована для получения доступа к файлу. (Этот параметр дополнительный, необязательный. Если загрузка не требует HTTP аутентификации, просто оставьте этот параметр пустым.) Таблица индексирована следующими ключами:

КЛЮЧ
KEY
ТИП
TYPE
ОПИСАНИЕ
DESCRIPTION
UserNameстрокаИмя пользователя, используемое во время HTTP аутентификации.
PasswordстрокаПароль, используемый во время HTTP аутентификации.

ProxyData

(таблица) Таблица содержащая данные о прокси-сервере пользователя. Можно передать значение nil (значение по умолчанию) для использования параметров прокси по умолчанию из текущих настроек браузера Internet Explorer (рекомендуемое), или передать таблицу определенных параметров прокси. (Возможно потребуется запрашивать эти данные у пользователя.) Таблица, индексированная следующими ключами:

КЛЮЧ
KEY
ТИП
TYPE
ОПИСАНИЕ
DESCRIPTION
PUserNameстрокаИмя пользователя прокси-сервера.
PPasswordстрокаПароль прокси-сервера.
PServerAddressстрокаАдрес прокси-сервера.

Возврат

ResultVariable

(логический) Истина (true), если с URL-адресом соединение возможно или ложь (false), если это невозможно или происходит ошибка. Можно использовать Application.GetLastError для определения случился ли отказ в работе этого действия и почему.
Смотрите также: Связанные действия

Примеры

Пример 1

IsConnected = HTTP.TestConnection("http://www.google.ca", 20, 80, nil, nil);

if (IsConnected == false) then
    Dialog.Message("Notice", "No Internet connection was detected.");
end
Проверяем есть ли у пользователя связь с Интернетом, попыткой соединиться с сайтом "http://www.google.ca". Если соединения нет, показываем диалоговое окно сообщения уведомляющее пользователя.

Пример 2

-- Check to see if the user is connected to the internet
-- Смотрим, есть ли у пользователя соединение с Интернетом
connected = HTTP.TestConnection("http://www.indigorose.com", 20, 80, nil, nil);

-- If they are connected.
-- Если соединение есть.
if connected then
    -- Download a file to their temporary directory.
    -- Загружаем файл во временную директорию пользователя.
    StatusDlg.Show(MB_ICONNONE, false);
    HTTP.Download("http://www.indigorose.com/setup.exe", _TempFolder .. "\\setup.exe", MODE_BINARY, 20, 80, nil, nil, nil);

    -- Get any error codes that may have been returned by the download action.
    -- Получаем коды любых ошибок, которые может возвратить действие загрузки.
    error = Application.GetLastError();
    StatusDlg.Hide();

    -- If there was an error during the download, display the error message.
    -- Если была ошибка при загрузке, показываем сообщение об ошибке.
    if error ~= 0 then
        result = Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION, MB_DEFBUTTON1);

    -- If there was no error during the download.
    -- Если при загрузке не было ошибки.
    else
        -- Get the CRC value of the downloaded file.
        -- Получаем CRC значение загруженного файла.
        crc_value = File.GetCRC(_TempFolder .. "\\setup.exe");
        -- Check to see if the CRC value matches it's expected value.
        -- Смотрим, совпадает ли CRC значение с предполагаемым значением.
        if crc_value == 824907888 then

            -- Run the exectuable that was downloaded.
            -- Запускаем выполнение загруженного файла.
            File.Run(_TempFolder .. "\\setup.exe", "", "", SW_SHOWNORMAL, true);

        -- The CRC value does not match. Display an error message to the user.
        -- CRC значение не совпадает. Показываем сообщение пользователю.
        else
            result = Dialog.Message("Error", "The downloaded file is incomplete. Please try downloading again.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
        end
    end

-- Display a notice informing them that they are not connected.
-- Показываем уведомительное сообщение пользователю о том, что у него нет соединения с Интернетом.
else
    Dialog.Message("Internet Error", "You are not connected to the internet. Please connect to download.");
end
В начале этого примера проверяем есть ли у пользователя соединение с интернетом, при помощи действия HTTP.TestConnection. Если оно есть, загружаем файл во временную директорию. Затем этот файл проверяем перед его запуском, чтобы убедиться в его комплектности и неповрежденности. Последовательность проверок выполняемых в этом скрипте обрабатывает любые ошибки, которые могут произойти и показываем уведомительные сообщения пользователю обо всех неудачных действиях.

Примечание: _TempFolder это встроенная переменная, содержащая путь к папке "Temp" в системе пользователя.
Смотрите также: Связанные действия