Lua socket.http 的 sink 参数

我正在尝试从 Lua 连接服务器以验证用户。这是我的请求函数:

function http.send(url)
    local req = require("socket.http")
    local b, c, h = req.request{
        url = url,
        redirect = true
    }
    return b
end

但是,我发现数据被丢弃,因为我没有提供 sink 参数。我想以整个字符串的形式返回下载的数据,而不是下载到文件/表中。我该怎么做?

点赞
用户221509
用户221509

你可以使用ltn12.sink.table分成小块,并将结果收集到给定的表中。然后,您可以使用table.concat获取结果字符串。

以下是ltn12.sink文档中的用例示例:

-- 加载所需模块
local http = require("socket.http")
local ltn12 = require("ltn12")

-- 一个简化的http.get函数
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
2013-03-16 19:53:57