This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. 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.