带有用户代理和 return body 的 Luasec Luasocket https.request

Luasec Luasocket https.request with user agent and return body

我想使用 LuaSec 制作一个带有自定义 user-agent 的 https.request。 我已经尝试过此处描述的方法:

https://github.com/brunoos/luasec/wiki/LuaSec-0.4#httpsrequesturl---body

但我不知道如何将 http headers 传递给此函数,同时避免将响应 body 设置为数字 1,如下所述:

If url is a table, the function returns the same results, except the response's body is replaced by the value 1.

 local headers = {
    ["user-agent"] = "My User Agent",
}

local r, c, h, s = _https.request {
    url = url,
    method = method,
    headers = headers,
}
-- r is 1, no the response body!

如果我将请求更改为

_https.request("https://my-site-goes-here.com/")

我得到了响应 body,但我无法再设置用户代理。

感谢您的帮助!

如果指定 table,第一个 return 元素是 always 1 成功;要接收实际数据,您还必须指定一个 sink,将接收到的数据存储到其中。例如:

local chunks = {}
local r, c, h, s = _https.request {
    url = url,
    method = method,
    headers = headers,
    sink = ltn12.sink.table(chunks)
}
local response = table.concat(chunks)

现在您可以从变量中检索响应 response