http

Работа с HTTP


get(url, options)

Отправляет GET запрос на указанный адрес.

Параметры

#ТипОписание
1строкаURL
2таблицапараметры запроса

Возвращаемые значения

#ТипОписание
1http_response_udответ
2errorошибка или 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