Шукати в цьому блозі

UrlLoader / інтернет

UrlLoader

Спадковість: Object

Підтримувані платформи   

Available since version: Gideros 2012.2.2

Опис:

Клас UrlLoader використовується для завантаження даних з URL-адреси. Він може бути використаний для завантаження (і, можливо, збереження) текстових файлів, XML-файлів, файлів JSON, файлів зображень або двійкових файлів тощо.

Завантажені дані доставляються в поле event.data події Event.COMPLETE як рядок. Lua - восьмибайтне чисте, тому рядки можуть містити символи з будь-яким числовим значенням, включаючи вбудовані нулі. Це означає, що ви можете зберігати будь-які двійкові дані у рядку.
HTTP Request Methods
UrlLoader підтримує методи GET, POST, PUT і DELETE. Вони визначаються цими константами рядка:

UrlLoader.GET = "get"
UrlLoader.POST = "post"
UrlLoader.PUT = "put"
UrlLoader.DELETE = "delete"

Приклади застосування:

Наведений нижче приклад показує завантаження файлу зображення з URL-адреси, збереження його в папці документів та його відображення
на сцені. Цей приклад також показує завантаження та обробку помилок.

Скачвання файлу
local loader = UrlLoader.new("http://example.com/image.png")

local function onComplete(event)
 local out = io.open("|D|image.png", "wb")
 out:write(event.data)
 out:close()

 local b = Bitmap.new(Texture.new("|D|image.png"))
 stage:addChild(b)
end

local function onError()
 print("error")
end

local function onProgress(event)
 print("progress: " .. event.bytesLoaded .. " of " .. event.bytesTotal)
end

loader:addEventListener(Event.COMPLETE, onComplete)
loader:addEventListener(Event.ERROR, onError)
loader:addEventListener(Event.PROGRESS, onProgress)
Відправка файлу
local filename = "crate.png"
local file = io.open(filename, "rb")
local contents = file:read( "*a" )
local boundary = "somerndstring"
 
local send = "--"..boundary..
   "\r\nContent-Disposition: form-data; "..
   "name="..filename.."; filename="..filename..
   "\r\nContent-type: image/png"..
   "\r\n\r\n"..contents..
   "\r\n--"..boundary.."--\r\n";
 
local headers = {
 ["Content-Type"] = "multipart/form-data; boundary="..boundary,
 ["Content-Length"] = #send,
}
 
local loader = UrlLoader.new("http://localhost/gideros.php", UrlLoader.POST, headers, send)
 
loader:addEventListener(Event.COMPLETE, function(e)
 print(e.data)
end)

Методи, евенти та властивості:

  Метод
  UrlLoader.new
  UrlLoader:close
  UrlLoader:ignoreSslErrors
  UrlLoader:load
Події
Event.COMPLETE
Event.ERROR
Event.PROGRESS
Властивості
UrlLoader.DELETE
UrlLoader.GET
UrlLoader.POST
UrlLoader.PUT
спадковані Методи
Object:getBaseClass
Object:getClass
Object:isInstanceOf

Немає коментарів:

Дописати коментар