我正在尝试与Lua的服务器通信以验证用户身份。这就是我的请求功能:
function http.send(url)
local req = require("socket.http")
local b, c, h = req.request{
url = url,
redirect = true
}
return b
end
但是,我注意到数据被丢弃,因为我没有提供sink
参数。我希望能够将下载的数据作为整个字符串返回,而不是下载到文件/表。我该怎么做呢?
答案 0 :(得分:6)
您可以使用ltn12.sink.table
将结果逐件收集到给定的表格中。然后,您可以使用table.concat
来获取生成的字符串。
ltn12.sink
的文档中的使用示例:
-- load needed modules
local http = require("socket.http")
local ltn12 = require("ltn12")
-- a simplified http.get function
function http.get(u)
local t = {}
local status, code, headers = http.request{
url = u,
sink = ltn12.sink.table(t)
}
return table.concat(t), headers, code
end