local copas = require 'copas'
local http = require 'copas.http'
local url = 'https://google.com/robots.txt'
httpRequest(url, nil, function(response, code, headers, status)
if not response then
print(url, 'Error', code) -- Ошибка если страница не загрузилась
else
print(response) -- Cодержимое страницы
print(status) -- Код HTTP ответа HTTP/1.1 200 OK
print(code) -- Номер ответа или строка ошибки
end
end)
function httpRequest(request, body, handler)
if not copas.running then
copas.running = true
lua_thread.create(function()
wait(0)
while not copas.finished() do
local ok, err = copas.step(0)
if ok == nil then error(err) end
wait(0)
end
copas.running = false
end)
end
if handler then
return copas.addthread(function(r, b, h)
copas.setErrorHandler(function(err) h(nil, err) end)
h(http.request(r, b))
end, request, body, handler)
else
local results
local thread = copas.addthread(function(r, b)
copas.setErrorHandler(function(err) results = {nil, err} end)
results = table.pack(http.request(r, b))
end, request, body)
while coroutine.status(thread) ~= 'dead' do wait(0) end
return table.unpack(results)
end
end