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 może wykonywać zwykłe żądania HTTP za pomocą funkcji http.request().
To najbardziej podstawowe żądanie służące do pobrania danych z serwera. Przykład:
local function handle_response(self, id, response)
print(response.status, response.response)
end
http.request("https://www.defold.com", "GET", handle_response)
Spowoduje to wysłanie żądania HTTP GET do adresu https://www.defold.com. Funkcja działa asynchronicznie i nie blokuje programu podczas wykonywania żądania. Gdy żądanie zostanie wysłane, a serwer zwróci odpowiedź, wywoła przekazaną funkcję zwrotną. Funkcja zwrotna otrzyma pełną odpowiedź serwera, w tym kod statusu i nagłówki odpowiedzi.
Żądania HTTP są automatycznie buforowane w kliencie, aby poprawić wydajność sieci. Zbuforowane pliki są przechowywane w ścieżce specyficznej dla systemu operacyjnego, w folderze o nazwie defold/http-cache. Zwykle nie trzeba zajmować się buforem HTTP, ale jeśli chcesz go wyczyścić podczas pracy nad projektem, możesz ręcznie usunąć folder zawierający zbuforowane pliki. Na macOS folder ten znajduje się w %HOME%/Library/Application Support/Defold/http-cache/, a w systemie Windows w %APP_DATA%/defold/http-cache.
Gdy wysyłasz do serwera dane, takie jak wynik punktowy albo dane uwierzytelniające, zwykle robi się to za pomocą żądania 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)
Żądania HTTP w Defold obsługują także metody HEAD, DELETE i PUT.
Aby dowiedzieć się więcej, zobacz dokumentację API.
Alternatywną implementację żądań HTTP znajdziesz w rozszerzeniu TinyHTTP.