В linux, ма c мы можем легко установить luarocks, а затем мы можем установить пакет curl. Это самый простой способ unix, как OS.
-- HTTP Get
local curl = require('curl')
curl.easy{
url = 'api.xyz.net?a=data',
httpheader = {
"X-Test-Header1: Header-Data1",
"X-Test-Header2: Header-Data2",
},
writefunction = io.stderr -- use io.stderr:write()
}
:perform()
:close()
В windows я столкнулся с несколькими проблемами. Не могу правильно установить luarocks. затем команда luarock install не работает правильная, и т. д. c ..
Сначала загрузите lua с официального сайта, а затем создайте структуру, подобную (ниже веб-сайта)
http://fuchen.github.io/dev/2013/08/24/install-luarocks-on-windows/
тогда я загружаю lua luadist http://luadist.org/
тогда я получил ту же структуру luadist извлеченная папка и lua папка.
объединены luadist папка и lua папка Наконец мы можем используйте http.soket
local http=require("socket.http");
local request_body = [[login=user&password=123]]
local response_body = {}
local res, code, response_headers = http.request{
url = "api.xyz.net?a=data",
method = "GET",
headers =
{
["Content-Type"] = "application/x-www-form-urlencoded";
["Content-Length"] = #request_body;
},
source = ltn12.source.string(request_body),
sink = ltn12.sink.table(response_body),
}
print(res)
print(code)
if type(response_headers) == "table" then
for k, v in pairs(response_headers) do
print(k, v)
end
end
print("Response body:")
if type(response_body) == "table" then
print(table.concat(response_body))
else
print("Not a table:", type(response_body))
end
ЕСЛИ ВЫ ДЕЛАЕТЕ ЭТИ ШАГИ ПРАВИЛЬНО, ЭТО БУДЕТ РАБОТАТЬ НА 1000% УВЕРЕН