Luasec Luasocket https.request与用户代理和返回正文

时间:2018-03-20 10:31:33

标签: lua get httprequest luasocket luasec

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

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

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

  

如果网址表格,则该函数返回相同的结果,但响应的正文被替换为值 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/")

我得到了回复的身体,但我不能再设置用户代理了。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果您指定了一个表,则第一个返回元素始终 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

中检索响应