http
Работа с HTTP
get(url, options)
Отправляет GET запрос на указанный адрес.
Параметры
# | Тип | Описание |
---|---|---|
1 | строка | URL |
2 | таблица | параметры запроса |
Возвращаемые значения
# | Тип | Описание |
---|---|---|
1 | http_response_ud | ответ |
2 | error | ошибка или nil |
Пример
local http = require("http")
local res, err = http.get("https://vikingo.org")
if err ~= nil then error(err) end
print(res.status_code)
res, err = http.get("https://vikingo.org", {headers={["User-Agent"]="Firefox"}})
print(res.body)
post(url, options, body)
Отправляет POST запрос на указанный адрес.
local http = require("http")
local res, err = http.post("http://localhost/example.php",{}, "test")
print(res, err)
res, err = http.post("http://localhost/example.php", {headers={["Content-Type"]="text/plain"}}, "test")
print(res, err)
- head
Отправляет HEAD запрос на указанный адрес.
local http = require("http")
local res, err = http.head("http://localhost/example.php")
print(res.status_code, err)
- delete
Отправляет DELETE запрос на указанный адрес.
local http = require("http")
local res, err = http.delete("http://localhost/example.php")
print(res.status_code, err)
- patch
- put
- new_session
- request
- data
- urlencoded
Параметры
headers
Произвольный набор HTTP заголовков. Задается в виде таблице, в которой ключём выступает имя заголовка, значением таблицы - значение заголовка. Пример
http.get("https://vikingo.org", {
headers={
["User-Agent"]="Firefox",
Referer = "https://vikingo.org"
}
})
proxy
Отправка запросов с использованием прокси сервера. Поддерживается socks5 протокол.
Пример
http.get("https://vikingo.org", {proxy="socks5://host:port"})
session
cookies
redirect
Следовать за переадресацией, если о ответе присутствует код 3xx и заголовок Location. По умолчанию true
timeout
Ограничение на максимальное время ответа сервера в миллисекундах.
response_limit
Задает максимальный размер ответа. Используется когда нет необходимости вычитывать весь ответ.
portmap
Мапинг адресов с портами и протоколами. Используется в основном для удобства в работе с настройками атомов. Пример
local http = require("http")
local links = http.portmap("vikingo.org/example", "80/http,443/https,8080/https")
for _, link in pairs(links) do
print(link)
end
-- вывод:
-- http://vikingo.org/example
-- https://vikingo.org/example
-- https://vikingo.org:8080/example