Files
chuanqi-server-instance/LogicServer/data/functions/Common/HttpClient.lua
2024-12-16 20:45:03 +08:00

57 lines
1.2 KiB
Lua
Executable File

HttpClient = {}
function HttpClient:Start()
if nil == self.requester then
self.requester = HttpRequester:create()
self.requester:retain()
self.requester:setCallback(LUA_CALLBACK(self, self.RequestCallback))
self.request_list = {}
end
end
function HttpClient:Update(dt)
end
function HttpClient:Stop()
if nil ~= self.requester then
self.requester:release()
self.requester = nil
self.request_list = nil
end
end
-- 请求
function HttpClient:Request(url, arg, callback)
if nil == self.requester then return end
local key = self.requester:addRequest(url, arg, 0)
if key < 0 then
print("HttpRequest fail url:" .. url)
return false
end
self.request_list[key] = callback
return true
end
function HttpClient:RequestCallback(url, arg, data, size, key)
if nil == self.requester then return end
local callback = self.request_list[key]
if nil ~= callback then
callback(url, arg, data, size)
self.request_list[key] = nil
end
end
function HttpClient:UrlEncode(str)
if (str) then
str = string.gsub (str, "\n", "\r\n")
str = string.gsub (str, "([^%w %-%_%.%~])",
function (c) return string.format ("%%%02X", string.byte(c)) end)
str = string.gsub (str, " ", "+")
end
return str
end
HttpClient:Start()