1

我想使用 LuaSec 使用自定义用户代理创建 https.request。我试过这里描述的方法:

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

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

如果url是一个table,该函数返回相同的结果,除了响应的主体被替换为值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/")

我得到了响应正文,但是我不能再设置用户代理了。

谢谢你的帮助!

4

1 回答 1

2

如果指定表,则第一个返回元素始终为 1成功;要接收实际数据,您还必须指定一个接收,接收到的数据将存储到该接收器。例如:

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

于 2018-03-20T15:20:32.237 回答