使用luasocket下载文件

Tre*_*lds 1 lua download luasocket

很抱歉,如果这是一个简单的解决方案,或者以前已经解决过,但是对于任何类型的网络编程,我都还很遥远,以至于我真的不知道什么是错误的,也没有寻找解决该问题的方法。

我希望能够使用我熟悉的语言Lua(扩展名为luasocket)从“ https://api.coinbase.com/v2/exchange-rates ”(以及其他地方)下载json文件。

我尝试使用http.requestftp.get,但均未返回任何信息。我不明白为什么我可以在浏览器中转到该网址,并且下载文件,但无法通过luasocket获取文件数据。如果我不能使用luasocket,那么您的Web浏览器发出的请求和luasocket之类的请求之间有什么区别?

Gre*_*een 5

如您所见,您拥有的URL https不简单http。您需要使用加密连接。为此,请使用luasec代替luasocket(实际上luasec取决于luasocket,但现在我们不打扰;简而言之https.request,luasec是基于http.requestluasocket构建的)。

local https = require "ssl.https" --luasec
local r,c,h,s = https.request {
    url = "https://api.coinbase.com/v2/exchange-rates",
    sink = ltn12.sink.file(io.stdout)
}
Run Code Online (Sandbox Code Playgroud)

这将在控制台中打印请求内容的主体。

有关luasocket的httpluasec的https的更多信息。