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