lcurl 모듈
URL 퍼센트 인코딩 및 디코딩(escape / unescape)
키워드: URL 인코딩, URI 인코딩, 퍼센트 인코딩, URLEncode, URLDecode, URLEscape, PercentEscape
local curl = require('lcurl')
local e = curl.easy()
--
print(e:escape('abcd$%^&*()')) -- "abcd%24%25%5E%26%2A%28%29" 출력
--
print(e:unescape('abcd%24%25%5E%26%2A%28%29')) -- "abcd$%^&*()" 출력
--
sys.alert(print.out())
참고: 위 코드에서는 이 장에서 설명하지 않는 함수인 sys.alert를 사용합니다.
lcurl 기반 httpGet 구현 예제
function httpGet(url) -- ftp 리소스도 요청할 수 있습니다(이 함수는 내장되어 있으며 여기서는 lcurl 사용법만 보여 줍니다)
if (url:sub(1, 6) ~= "ftp://" and
url:sub(1, 8) ~= "https://" and
url:sub(1, 7) ~= "http://") then
url = "https://"..url
end
local curl = require("curl.safe")
local buffer_t = {}
local write_f = function(s)
buffer_t[#buffer_t + 1] = s
end
local noerr, err = pcall(function()
curl.easy()
:setopt(curl.OPT_URL, url)
:setopt(curl.OPT_CONNECTTIMEOUT, 60)
:setopt_writefunction(write_f)
:perform()
end)
if (noerr) then
return table.concat(buffer_t)
else
return nil, err
end
end
참고: 위 코드에서는 이 장에서 설명하지 않는 함수인 table.concat을 사용합니다.