57 lines
1.2 KiB
Lua
57 lines
1.2 KiB
Lua
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() |