- Dokumentacja
- Funkcje serwera
- fetchRemote
Funkcja
fetchRemote
Wysyła zapytanie HTTP lub HTTPS i oddaje odpowiedź do funkcji zwrotnej, bez zatrzymywania serwera. Z danymi postData robi zapytanie POST, bez nich GET. Funkcja dostaje treść odpowiedzi i kod: 0 = sukces, numer statusu HTTP przy błędzie serwera, -1 przy braku połączenia albo przekroczeniu czasu.
Składnia
bool fetchRemote(string url, function callback [, string postData, int timeoutMs = 10000])Argumenty
urlstring- Adres
http://albohttps://. callbackfunctionfunction(responseData, errno).postDatastring, opcjonalny- Treść zapytania POST.
timeoutMsint, opcjonalny = 10000- Limit czasu w ms (1000-60000).
Zwraca
true, gdy zapytanie wystartowało.
Przykład
Pobranie kursu z publicznego API i pokazanie go na czacie.
fetchRemote("https://api.example.com/kurs.json", function(data, errno)
if errno ~= 0 then
outputServerLog("Błąd zapytania: " .. errno)
return
end
local info = fromJSON(data)
outputChatBox("Kurs: " .. tostring(info and info.rate))
end)
Uwagi
Kolejność argumentów. Funkcja zwrotna jest drugim argumentem, a dane POST trzecim. Funkcja dostaje dwa argumenty: treść i kod błędu.
Zobacz też
callRemoteWywołuje funkcję udostępnioną przez inny serwer przez HTTP (argumenty idą jako JSON w zapytaniu POST). W obecnej wersji serwera funkcja nie wysyła zapytania i zwracafalse; zamiast niej użyjfetchRemoteztoJSON.abortRemoteRequestPrzerywa trwające zapytanie HTTP. W obecnej wersji serwera nie da się go jeszcze przerwać: funkcja zwracafalsez ostrzeżeniem, a zapytanie kończy się samo po czasie zfetchRemote.fromJSONOdczytuje tekst JSON i zwraca wartość Lua. Tablica najwyższego poziomu (tak zapisujetoJSON) rozpakowuje się na kilka wyników. Uszkodzony JSON dajenili ostrzeżenie z pozycją błędu.