Żądania HTTP w grze

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Możesz użyć HttpService, aby wysłać ogólne żądania HTTP do zewnętrznych serwisów internetowych w takich przypadkach jak analityka, przechowywanie danych czy logowanie błędów. HttpService wspiera także pewne punkty końcowe Open Cloud.

Włącz żądania HTTP

Metody HttpService:GetAsync(), HttpService:PostAsync() i HttpService:RequestAsync() nie są domyślnie włączone. Aby wysyłać żądania, musisz Ze zezwolić na żądania HTTP w Ustawieniach doświadczenia dla swojej gry.

Użycie w wtyczkach

Możesz używać HttpService w wtyczkach Studio, aby sprawdzić dostępność aktualizacji, pobrać treści lub wykonać inną logikę biznesową. Przy pierwszym użyciu usługi przez wtyczkę użytkownik może zostać poproszony o zezwolenie wtyczce na komunikację z danym adresem internetowym. Użytkownicy mogą akceptować, odrzucać i cofać te uprawnienia w dowolnym momencie za pomocą okna Zarządzanie wtyczkami.

Wtyczki mogą również komunikować się z innym oprogramowaniem uruchomionym na tym samym komputerze przez hosty localhost i 127.0.0.1. Uruchamiając programy kompatybilne z takimi wtyczkami, możesz rozszerzyć funkcjonalność swojej wtyczki poza normalne możliwości Studio, takie jak interakcja z systemem plików komputera. Uważaj, aby takie oprogramowanie było dystrybuowane osobno od samej wtyczki, ponieważ może stwarzać ryzyko bezpieczeństwa.

Użycie z Open Cloud

HttpService może obecnie wywoływać podzbiór punktów końcowych Open Cloud. Możesz wywoływać te punkty końcowe w ten sam sposób, w jaki wywołujesz inne punkty końcowe za pomocą HttpService. Jedyną różnicą jest to, że musisz dołączyć klucz API Open Cloud do żądania:

  1. Wykonaj żądanie.

Poniższy przykład kodu pokazuje, jak zaktualizować przynależność użytkownika do grupy z poziomu gry:


local HttpService = game:GetService("HttpService")
local groupId = "your_group_id"
local membershipId = "your_membership_id"
local roleId = "your_role_id"
local function request()
local response = HttpService:RequestAsync({
Url = `https://apis.roblox.com/cloud/v2/groups/{groupId}/memberships/{membershipId}`,
Method = "PATCH",
Headers = {
["Content-Type"] = "application/json", -- Gdy wysyłasz JSON, ustaw to!
["x-api-key"] = HttpService:GetSecret("APIKey"), -- Ustawione w Creator Hub
},
Body = HttpService:JSONEncode({ role = `groups/{groupId}/roles/{roleId}` }),
})
if response.Success then
print("Odpowiedź była udana:", response.StatusCode, response.StatusMessage)
else
print("Odpowiedź zwróciła błąd:", response.StatusCode, response.StatusMessage)
end
print("Treść odpowiedzi:\n", response.Body)
print("Nagłówki odpowiedzi:\n", HttpService:JSONEncode(response.Headers))
end
-- Owiń funkcję w pcall() dla bezpieczeństwa
local success, errorMessage = pcall(request)
if not success then
print("Wysłanie żądania HTTP nie powiodło się:", errorMessage)
end

Obsługiwane punkty końcowe Open Cloud

Obsługiwane są następujące punkty końcowe. Z powodu aktualnych ograniczeń w HttpService, ciąg .. nie jest dozwolony w parametrach ścieżki URL do domen roblox. Oznacza to, że na przykład, dyski danych i wpisy zawierające ten ciąg są obecnie niedostępne z HttpService.

Aktywa

Ban i blokady

Konfiguracje

Sklep twórcy

Produkty dla programistów

Przepustki do gier

Przechowywania danych i pamięci

Przechowywania danych:

Pamięci:

Zamówione przechowywania danych:

Grupy

Inwentarze

Wykonanie Luau

Powiadomienia

Miejsca

Uniwersa

Użytkownicy

Ograniczenia

  • Dozwolone są tylko nagłówki x-api-key i content-type.
  • Nagłówek x-api-key musi być typu Secret. Zobacz Magazyny sekretów.
  • Ciąg ".." nie jest dozwolony w parametrach ścieżki URL.
  • Obsługiwany jest tylko protokół HTTPS.
  • Nie możesz używać portu 1194 ani żadnego portu poniżej 1024, z wyjątkiem 80 i 443. Jeśli spróbujesz użyć zablokowanego portu, otrzymasz błąd 403 Forbidden lub ERR_ACCESS_DENIED.

Limity prędkości

Dla każdego serwera gry Roblox istnieje limit 2500 żądań Open Cloud na minutę. Przekroczenie tego limitu może spowodować zablokowanie metod wysyłania żądań na około 30 sekund. Twój pcall() może również zakończyć się niepowodzeniem z komunikatem Liczba żądań Open Cloud przekroczyła limit.

  • Żądania Open Cloud nie zużywają tego samego ogólnego limitu 500 żądań HTTP na minutę, który jest egzekwowany na wszystkie inne żądania.
  • Każdy punkt końcowy ma swój własny limit na właściciela klucza API (może to być użytkownik lub grupa), który jest egzekwowany bez względu na to, skąd pochodzą wywołania (HttpService, sieć itp.).

Aby uzyskać szczegółowe informacje na temat limitów prędkości Open Cloud, ograniczeń prędkości opartych na uwierzytelnianiu oraz najlepszych praktyk, zapoznaj się z Limitami prędkości.

Najlepsze praktyki

Aby zoptymalizować wykorzystanie HttpService i uniknąć przekroczenia limitów, zastosuj następujące najlepsze praktyki:

  • Obchodź się z błędami w sposób oszczędny. Żądania internetowe mogą zakończyć się niepowodzeniem z wielu powodów. Użyj pcall() i miej plan na wypadek, gdyby żądania zakończyły się niepowodzeniem. Ponadto ściśle waliduj i oczyszczaj wszystkie otrzymane dane z zewnętrznych API, zapewniając poprawność danych tam, gdzie to możliwe.

  • Używaj ekspansywnego nakładania, aby pozostać poniżej limitów.

    Jeśli żądanie zwraca błąd, który można odzyskać, zamiast natychmiast ponownie próbować, poczekaj dwa sekundy, potem cztery, osiem itd. między próbami. Pomaga to ograniczyć zator i zwiększa szansę na pomyślne wysłanie żądania, dając punktowi końcowemu czas na „ochłonięcie”.

  • Agreguj i wysyłaj dane hurtowo.

    Kiedy to możliwe, zaleca się, aby serwer zbierał wszystkie niezbędne dane, aby wysłać jedno żądanie HTTP, a nie wiele małych żądań. Na przykład, jeśli wysyłasz żądanie HTTP dla każdego gracza na swoim serwerze, sprawdź, czy API ma punkt końcowy masowy/batchowy i, jeśli tak, zbierz informacje od wszystkich graczy i wyślij je w jednym żądaniu.

    W niektórych przypadkach możesz być zmuszony użyć HttpService:RequestAsync(), aby dołączyć dane do ciała żądania.

  • Używaj punktów końcowych HTTP/2. HTTP/2 zapewnia istotne korzyści wydajnościowe poprzez funkcje takie jak kompresja nagłówków i multiplexing żądań/odpowiedzi w ramach jednego połączenia. HttpService automatycznie wykorzystuje HTTP/2, gdy jest dostępne. Należy pamiętać, że specyfikacja HTTP/2 wymaga, aby wszystkie nazwy nagłówków były wysyłane małymi literami.

Obserwowalność

Dashboard Obserwowalności zapewnia wgląd i analitykę w celu monitorowania i rozwiązywania problemów związanych z użyciem HttpService. Dashboard zawiera dwa główne wykresy: Liczba Żądań, który śledzi ilość żądań HttpService z Twojej gry oraz Czas Odpowiedzi, który mierzy opóźnienie w odpowiedzi punktów końcowych.

Dostępne wymiary filtracji i podziału są zdefiniowane w następujący sposób:

Typ żądania

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • Inne (dla niesprecyzowanych typów żądań)

Status

  • Sukces (kody statusu HTTP 1xx i 2xx)
  • Przekierowanie (kody statusu HTTP 3xx)
  • 400 (Błędne żądanie)
  • 401 (Nieautoryzowany)
  • 403 (Zabronione)
  • 404 (Nie znaleziono)
  • 429 (Za dużo żądań)
  • 500 (Błąd serwera wewnętrznego)
  • 503 (Usługa niedostępna)
  • ExternalError (jakiekolwiek inne niesprecyzowane kody błędów zwrócone z zewnętrznej usługi)
  • InternalError (problem zwrócony z HttpService w Robloxie)

Wykres Czas Odpowiedzi nie jest skorelowany z danymi statusu. Jeśli wybierzesz „Status” jako podział lub filtr, ten wykres nie wyświetli danych.

Dodatkowe rozważania

  • Żądania powinny dostarczać bezpieczną formę uwierzytelnienia, taką jak klucz tajny, aby złoczyńcy nie mogli udawać jednego z Twoich serwerów Roblox.
  • Bądź świadomy ogólnych zasad pojemności i ograniczeń prędkości serwerów internetowych, do których przesyłane są żądania.
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.