19.02.2021, 22:22
i make dynamic function to call https command and to add headers like the below,
My problem is, if i call get command like
with var payload set to nil, the msg_response var returns nil,
i think because, source = ltn12.source.string(payload) would be nil
2 Questions
1- Is the ltn12.source tied together with the ltn12.sink if the source var is present?
2- How can i ignore the ltn12.source if function payload var is set to nil?
Code:
function Https_message(method, url, payload, add_headers) --method is "POST", "GET" "PUT" etc
htps = require("ssl.https")
msg_response = {}
hders = {}
if payload or add_headers then
if payload then
hders = { ["Accept"] = "*/*",
["Content-Type"] = "application/json",
["Content-Length"] = #payload,
['Host'] = ip..':'..port}
else
hders = { ["Accept"] = "*/*", ["Content-Type"] = "application/json", ['Host'] = ip..':'..port}
end
if add_headers then
for k, v in pairs(add_headers) do
hders[k] = v
end
end
end
local res, err, res_headers, status = htps.request
{
url = url,
method = method,
protocol = 'tlsv12',
headers = hders,
verify = "none",
source = ltn12.source.string(payload),
sink = ltn12.sink.table(msg_response)
}
return msg_response, err, res_headers
end
My problem is, if i call get command like
Code:
local msg_response, err, Https_message('GET', 192.168.1.1:443/etc/etc, nil, nil)
log(msg_response, err)
i think because, source = ltn12.source.string(payload) would be nil
2 Questions
1- Is the ltn12.source tied together with the ltn12.sink if the source var is present?
2- How can i ignore the ltn12.source if function payload var is set to nil?