Перейти к основному содержимому

Выполнение 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.