Read this manual in English

HTTP запросы

Defold может делать обыкновенные HTTP запросы с использованием функции http.request().

HTTP GET

Это самый базовый запрос, чтобы получить некие данные от сервера. Пример:

local function handle_response(self, id, response)
	print(response.status, response.response)
end

http.request("https://www.defold.com", "GET", handle_response)

Данный код выполнит HTTP GET запрос на адрес https://www.defold.com. Эта функция асинхронна и она не заблокирует основной код по мере выполнения запроса. Как только запрос будет сделан и сервер отправит ответ, будет вызвана предоставленная функция обратного вызова. Функция обратного вызова получит полный ответ сервера, включая код статуса и заголовки ответа.

HTTP запросы автоматически кэшируются на клиенте для повышения сетевой производительности. Кэшированные файлы хранятся по специфичному для каждой ОС пути в папке с именем defold/http-cache. Обычно вам не нужно беспокоиться о HTTP кэше, но если вам нужно очищать кэш во время разработки, вы можете вручную удалить папку, содержащую кэшированные файлы. На macOS эта папка располагается в %HOME%/Library/Application Support/Defold/http-cache/, а на Windows в %APP_DATA%/defold/http-cache.

HTTP POST

Посылка данных, таких как очки или некие данные аутентификации, на сервер обычно делается через POST запросы:

local function handle_response(self, id, response)
	print(response.status, response.response)
end

local headers = {
	["Content-Type"] = "application/x-www-form-urlencoded"
}
local body = "foo=bar"
http.request("https://httpbin.org/post", "POST", handle_response, headers, body)

Другие HTTP методы

HTTP запросы в Defold также поддерживают методы HEAD, DELETE и PUT.

Справочник по API

Обратитесь к Справочнику по API чтобы узнать больше.

Расширения

Альтернативную реализацию HTTP запросов можно найти здесь TinyHTTP extension.