4

我正在尝试从 Lua 与我的服务器通信以验证用户身份。这是我的请求函数的样子:

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

但是,我注意到数据被丢弃了,因为我没有提供sink参数。我希望能够将下载的数据作为一个完整的字符串返回,而不是下载到文件/表中。我该怎么办?

4

1 回答 1

7

您可以使用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
于 2013-03-16T19:53:57.393 回答