Requisições https com Lua

333 views
Skip to first unread message

ricar...@gmail.com

unread,
Oct 23, 2018, 2:10:00 PM10/23/18
to Lua BR
Olá a todos, sou Ricardo e novato no grupo e também com Lua. Tenho uma dúvida com relação a requesição http que gostaria de esclarecer.

Estou usando um ESP8266 com o Build NodeMCU:

branch: master
commit: c708828bbe853764b9de58fb8113a70f5a24002d
SSL: true
modules: adc,file,gpio,http,mqtt,net,node,pwm,sjson,tmr,u8g2,uart,websocket,wifi,wifi_monitor,tls
 build created on 2018-10-22 21:09
 powered by Lua 5.1.4 on SDK 2.2.1(6ab97e9)


No meu projeto eu preciso enviar uma requisição HTTPS para que ele me envie um push para o celular e está dando falha na requisição -1.

segue a requisição para exemplo, será que tem alguma coisa errada com minha requisição ?

headers = 'Content-Type: application/json' ..
           'Access-Token: xxxxxxxxxxxxx'  
data = ' data-binary {"type":"note", "title":"teste", "body":"teste"}'


http.post(url, headers, data,
  function(code, data)
    if (code < 0) then
      print("HTTP request failed")
    else
     print(code, data)
    end
 end)


Erro: 

Running
HTTP client: Disconnected with error: 9
HTTP client: Connection timeout
HTTP request failed



Outra coisa que li é que o Lua nao teria o módulo HTTPS não podendo trabalhar com conexões seguras, isso procede ?

Agradeço desde já !


Tomás Guisasola

unread,
Oct 23, 2018, 2:21:00 PM10/23/18
to lua...@googlegroups.com
Olá Ricardo

Já experimentou a biblioteca LuaSec?  Ela oferece uma interface quase idêntica à LuaSocket, mas usando HTTPS.  Eu tenho usado com serviços SOAP e funciona direitinho.

Abraço,
Tomás


--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para lua-br+un...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/lua-br.
Para mais opções, acesse https://groups.google.com/d/optout.

Ricardo Alexandre Silveira

unread,
Oct 24, 2018, 8:22:09 AM10/24/18
to lua...@googlegroups.com
Olá, interessante não conheço. O build é como no nodeMCU um binário ? eu vi na documentação mais não entendi direito como faz o build para o ESP8266. Obrigado.
--
Ricardo Alexandre Silveira
Superior em Redes de Telecomunicações e Sistemas.

Diego Cardoso

unread,
Oct 24, 2018, 9:31:16 PM10/24/18
to lua...@googlegroups.com
Ricardo, talvez seja necessário você recompilar uma imagem com o módulo TLS habilitado e regravá-la na flash do ESP.
Dê uma olhada no seguinte link:

Att.,

Dado Sutter

unread,
Oct 24, 2018, 9:53:33 PM10/24/18
to lua...@googlegroups.com
Se v não quiser instalar todo o toolchain localmente, você pode fazer seu build online em
https://nodemcu-build.com/

Abraçossssss
Dado


Ricardo Alexandre Silveira

unread,
Oct 25, 2018, 1:20:44 PM10/25/18
to lua...@googlegroups.com
Olá boa tarde, estou tentando usar o módulo TLS mais está com a seguinte mensagem de erro no Lua:

Saída no console:
PANIC: unprotected error in call to Lua API (alarme.lua:29: no certificates found)

Gostaria de saber se estou fazendo algo errado, estou seguindo a documentação do Lua e coloquei o certificado e mesmo assim
acusa o erro. Fico no aguardo e agradeço desde já.


srv = tls.createConnection()
srv:on("receive", function(sck, c) print(c) end)
srv:on("connection", function(sck, c)
-- Wait for connection before sending.
sck:send("GET / HTTP/1.1\r\nHost: api.exemplo.com\r\nConnection: keep-alive\r\nAccept: */*\r\n\r\n")
end)
--srv:connect(443,"google.com")
srv:connect(443,"api.exemplo.com")

print(srv)

--tls.cert Module
tls.cert.verify(true, [[-----BEGIN CERTIFICATE-----
xxxxxxxx
-----END CERTIFICATE-----]])

http.get(api.exemplo.com", nil,
function (code, resp)
print(code, resp)
end)
Reply all
Reply to author
Forward
0 new messages