Lua: Получить веб-страницу - PullRequest
7 голосов
/ 28 июля 2011

Я хочу получить веб-страницу и получить результат в виде строки, но я не знаю, как это сделать.Я ищу в Интернете и не нашел, как это сделать.

Ответы [ 3 ]

13 голосов
/ 28 июля 2011

Я бы просто использовал Lua Socket , который поставляется с http подмодулем .Вы можете просто использовать http.request, чтобы поместить веб-страницу в любой контейнер, который вам нужен (по умолчанию это строка, но вы можете использовать таблицу, файл, stdio, ... используя фильтры и приемники ltn12).

В качестве примера:

local http=require'socket.http'
local body, statusCode, headers, statusText = http.request('http://w3.impa.br/~diego/software/luasocket/http.html')
print('statusCode ', statusCode)
print('statusText ', statusText)
print('headers ')
for index,value in pairs(headers) do
    print("\t",index, value)
end
print('body',body)
2 голосов
/ 28 июля 2011

Если вы не можете найти точную http-клиентскую библиотеку, вы можете внедрить ее на себя или использовать чужую работу .

В этой ссылке, хотя она называется libhttpd, но автор четко заявляет, что ее можно использовать для чего угодно.Похоже на более удобную обертку вокруг розеток lua.

1 голос
/ 07 декабря 2017

если у вас нет сокета (как у меня), но у вас есть библиотека / модуль http, то вы можете попробовать это:

http.get("https://nodemcu.readthedocs.io/en/master/en/modules/http/", nil, function(code, data)
    if (code ~= 200) then
        print("HTTP request failed")
    else
        print(code, data)
    end
end)

у меня работает

Вы можете найти больше информации в документации https://nodemcu.readthedocs.io/en/master/en/modules/http/#httpget

...