Выполнение HEAD-запроса (http.head)
Объявление
HTTP_код, JSON_текст_заголовков_ответа = http.head(URL [, тайм-аут_в_секундах, заголовки_запроса, URL_без_ESCAPE ])
Объявление (именованные параметры)
Поддерживается с 20250625; параметры прогресса поддерживаются в версиях после 20260402
HTTP_код, JSON_текст_заголовков_ответа = http.head{
url = URL;
timeout = тайм-аут_в_секундах;
headers = заголовки_запроса;
params = параметры_Query;
progress = функция_обратного_вызова_прогресса;
progress_interval_ms = интервал_прогресса_в_миллисекундах;
}
Параметры
- URL
Строка, адрес запрашиваемого URL; по умолчанию метод выполняет escape URL. Если это не нужно, см. описание параметра URL без ESCAPE - тайм-аут_в_секундах
Вещественное число, необязательный параметр; время ожидания запроса в секундах, по умолчанию 10 - заголовки_запроса
Таблица, необязательный параметр; заголовки отправляемого запроса в формате{field1 = value1, field2 = value2, ...}, по умолчанию{} - параметры_Query
Таблица, необязательный параметр; параметры Query отправляемого запроса в формате{field1 = value1, field2 = value2, ...}, по умолчанию{} - функция_обратного_вызова_прогресса
Функция, необязательный параметр, поддерживается в версиях после 20260402. Вызывается при изменении прогресса запроса; первый параметр — текущая информация о прогрессе - интервал_прогресса_в_миллисекундах
Целое число, необязательный параметр, поддерживается в версиях после 20260402. Задаёт интервал вызова обратного вызова прогресса в миллисекундах - URL без ESCAPE
Логическое значение, необязательный параметр; true отправляет запрос без escape URL, по умолчанию false
Для пользовательского escape URL см. модуль lcurl, easy:escape и easy:unescape
Возвращаемое значение
- HTTP-код
Целое число, код HTTP текущего запроса; при тайм-ауте возвращает -1 - JSON-текст заголовков ответа
Строка или nil; после запроса возвращается информация о заголовках в формате JSON, при тайм-ауте — nil
Описание
Запрашивает заголовки сетевого ресурса методом HEAD протокола HTTP/1.1.
HEAD обычно возвращает те же заголовки, что и GET, но не возвращает фактическое тело ответа.
Функция может уступить выполнение: до её возврата другие потоки могут получить возможность работать
Структура info, передаваемая функции обратного вызова прогресса:
{
count_of_bytes_sent = число_отправленных_байт;
count_of_bytes_expected_to_send = ожидаемое_число_отправляемых_байт;
count_of_bytes_received = число_полученных_байт;
count_of_bytes_expected_to_receive = ожидаемое_число_получаемых_байт;
}
Пример
local c, h = http.head("https://www.xxtouch.app/测试文本.txt")
if c==200 then -- Если возвращённый код — HTTP_OK
sys.alert(h) -- Вывод заголовков ответа
end
Примечание: приведённый код использует функцию из другого раздела sys.alert.