带有用户代理和 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
我想使用 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