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
Defold может делать обыкновенные HTTP запросы с использованием функции http.request()
.
Это самый базовый запрос, чтобы получить некие данные от сервера. Пример:
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
.
Посылка данных, таких как очки или некие данные аутентификации, на сервер обычно делается через 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 запросы в Defold также поддерживают методы HEAD, DELETE и PUT.
Обратитесь к Справочнику по API чтобы узнать больше.
Альтернативную реализацию HTTP запросов можно найти здесь TinyHTTP extension.
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB