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