lua - 使用 luasocket 下载文件

标签 lua download luasocket

如果这个问题有一个简单的解决方案,或者这个问题以前已经解决过,我很抱歉,但我远离任何类型的网络编程,我真的不知道什么是错误的,也不知道要搜索什么修复它。

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

我尝试过使用http.requestftp.get,但都没有返回任何类型的信息。我不明白为什么我可以在浏览器上访问该网址,并下载文件,但我无法通过 luasocket 获取文件数据。如果我无法使用 luasocket,那么从您的网络浏览器发出的请求与从 luasocket 之类的东西发出的请求有什么区别?

最佳答案

正如您所看到的,您拥有的 URL 是 https,而不是普通的 http。您需要使用加密连接。使用 luasec 而不是 luasocket (实际上 luasec 依赖于 luasocket,但现在我们不要打扰;简而言之,构建了来自 luasec 的 https.request来自 luasocket 的 http.request)。

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)
}

这将在控制台中打印请求内容的正文。

更多关于luasocket's httpluasec's https .

关于lua - 使用 luasocket 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44294288/

相关文章:

检查功能是否在 C 或 Lua 中实现

sorting - Lua 按两个值排序表?

java - 如何使用 Java 在浏览器中启动文件下载?

ftp - LuaSocket FTP 总是超时

lua - 使用lua发送获取网站

mysql - 如何从 luaSQL 查询中获取结果?

lua - 获取 lua pcall 中错误的真实堆栈跟踪

iphone - 在 UITableView 中显示可下载内容的正确方法(使用 ProgressBar 等)

java - 来自 Baseadapter 的 Android Java 进度对话框

Lua 套接字异步调用