Выполнение DELETE-запроса (http.delete)
Объявление
HTTP_код, JSON_текст_заголовков_ответа, тело_ответа = http.delete(URL [, тайм-аут_в_секундах, заголовки_запроса, данные_тела_запроса, URL_без_ESCAPE ])
Объявление (именованные параметры)
Поддерживается с 20250625; параметры прогресса поддерживаются в версиях после 20260402
HTTP_код, JSON_текст_заголовков_ответа, тело_ответа = http.delete{
url = URL;
timeout = тайм-аут_в_секундах;
headers = заголовки_запроса;
params = параметры_Query;
-- Следующие параметры тела запроса нельзя задавать одновременно; приоритет: multipart > data > json > upload_file
multipart = multipart_форма_тела_запроса;
data = данные_тела_запроса;
json = JSON_тела_запроса;
upload_file = путь_загружаемого_файла_тела_запроса;
download_file = путь_для_сохранения_тела_успешного_ответа;
progress = функция_обратного_вызова_прогресса;
progress_interval_ms = интервал_прогресса_в_миллисекундах;
}
Параметры
- URL
Строка, адрес запрашиваемого URL; по умолчанию метод выполняет escape URL. Если это не нужно, см. описание параметра URL без ESCAPE - тайм-аут_в_секундах
Вещественное число, необязательный параметр; время ожидания запроса в секундах, по умолчанию 10 - заголовки_запроса
Таблица, необязательный параметр; заголовки отправляемого запроса в формате{field1 = value1, field2 = value2, ...}, по умолчанию{} - параметры_Query
Таблица, необязательный параметр; параметры Query отправляемого запроса в формате{field1 = value1, field2 = value2, ...}, по умолчанию{} - данные_тела_запроса
Строка, необязательный параметр; содержимое, отправляемое методом DELETE, по умолчанию пустая строка
20250625 если это таблица, она отправляется в кодировке application/x-www-form-urlencoded - multipart_форма_тела_запроса
Таблица, необязательный параметр; multipart-данные формы, отправляемые методом DELETE, в формате{field1 = value1, field2 = value2, ...}, по умолчанию{} - JSON_тела_запроса
Таблица, необязательный параметр; отправляется в кодировке application/json - путь_загружаемого_файла_тела_запроса
Строка, необязательный параметр; данные файла отправляются непосредственно как тело запроса - путь_для_сохранения_тела_успешного_ответа
Строка, необязательный параметр; при указании тело успешного ответа сохраняется, и возвращается путь к файлу - функция_обратного_вызова_прогресса
Функция, необязательный параметр, поддерживается в версиях после 20260402. Вызывается при изменении прогресса загрузки или выгрузки; первый параметр — текущая информация о прогрессе - интервал_прогресса_в_миллисекундах
Целое число, необязательный параметр, поддерживается в версиях после 20260402. Задаёт интервал вызова обратного вызова прогресса в миллисекундах - URL без ESCAPE
Логическое значение, необязательный параметр; true отправляет запрос без escape URL, по умолчанию false
Для пользовательского escape URL см. модуль lcurl, easy:escape и easy:unescape
Возвращаемое значение
- HTTP-код
Целое число, код HTTP текущего запроса; при тайм-ауте возвращает -1 - JSON-текст заголовков ответа
Строка или nil; после запроса возвращается информация о заголовках в формате JSON, при тайм-ауте — nil - тело ответа
Строка или nil; содержимое ответа после завершения запроса. Если тело сохранено в файл, это путь к файлу; при тайм-ауте — nil
Описание
Запрашивает сетевой ресурс методом DELETE протокола HTTP/1.1; обычно этот метод удаляет ресурс, и протокол, как правило, предусматривает проверку прав.
Функция может уступить выполнение: до её возврата другие потоки могут получить возможность работать
Структура info, передаваемая функции обратного вызова прогресса:
{
count_of_bytes_sent = число_отправленных_байт;
count_of_bytes_expected_to_send = ожидаемое_число_отправляемых_байт;
count_of_bytes_received = число_полученных_байт;
count_of_bytes_expected_to_receive = ожидаемое_число_получаемых_байт;
}
Пример
local code, res_headers, body = http.delete("https://httpbin.org/delete?hello=world&你好=世界", 15, {
["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)", -- Имитация запроса IE8
["Cookie"] = "a=1; b=2; c=3"; -- Одновременно отправка Cookie
}, "需要发送过去的数据")
if code == 200 then -- Если возвращённый код — HTTP_OK
sys.alert(body)
end
Примечание: приведённый код использует функцию из другого раздела sys.alert.
Пример (именованные параметры)
local code, res_headers, body = http.delete{
url = "https://httpbin.org/delete";
timeout = 15;
headers = {
["User-Agent"] = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)"; -- Имитация запроса IE8
["Cookie"] = "a=1; b=2; c=3"; -- Одновременно отправка Cookie
};
params = {
["hello"] = "world";
["你好"] = "世界";
};
data = "需要发送过去的数据";
}
if code == 200 then -- Если возвращённый код — HTTP_OK
sys.alert(body)
end
Примечание: приведённый код использует функцию из другого раздела sys.alert.