Impara
Classe motore
HttpService
Non costruibile
Assistenza

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.


Sommario
Metodi
GenerateGUID(wrapInCurlyBraces: boolean):string
GetAsync(url: Variant,nocache: boolean,headers: Variant):string
JSONDecode(input: string):Variant
JSONEncode(input: Variant):string
PostAsync(url: Variant,data: string,content_type: Enum.HttpContentType,compress: boolean,headers: Variant):string
Membri ereditati
Campioni di codice
Astronauti nello Spazio
local HttpService = game:GetService("HttpService")
local URL_ASTROS = "http://api.open-notify.org/astros.json"
-- Effettua la richiesta al nostro URL dell'endpoint
local response = HttpService:GetAsync(URL_ASTROS)
-- Analizza la risposta JSON
local data = HttpService:JSONDecode(response)
-- Le informazioni nella tabella dei dati dipendono dalla risposta JSON
if data.message == "success" then
print("Attualmente ci sono " .. data.number .. " astronauti nello spazio:")
for i, person in pairs(data.people) do
print(i .. ": " .. person.name .. " è su " .. person.craft)
end
end
Dov'è la Stazione Spaziale Internazionale?
local HttpService = game:GetService("HttpService")
-- Dov'è la Stazione Spaziale Internazionale in questo momento?
local URL_ISS = "http://api.open-notify.org/iss-now.json"
local function printISS()
local response
local data
-- Usa pcall nel caso in cui qualcosa vada storto
pcall(function()
response = HttpService:GetAsync(URL_ISS)
data = HttpService:JSONDecode(response)
end)
-- La nostra richiesta è fallita o il nostro JSON non è riuscito a essere analizzato?
if not data then
return false
end
-- Controlla completamente i nostri dati per validità. Questo dipende da quale endpoint stai
-- a cui stai inviando le tue richieste. Per questo esempio, questo endpoint è
-- descritto qui: http://open-notify.org/Open-Notify-API/ISS-Location-Now/
if data.message == "success" and data.iss_position then
if data.iss_position.latitude and data.iss_position.longitude then
print("La Stazione Spaziale Internazionale si trova attualmente a:")
print(data.iss_position.latitude .. ", " .. data.iss_position.longitude)
return true
end
end
return false
end
if printISS() then
print("Successo")
else
print("Qualcosa è andato storto")
end
Nuovo Post su Pastebin
local HttpService = game:GetService("HttpService")
local URL_PASTEBIN_NEW_PASTE = "https://pastebin.com/api/api_post.php"
local dataFields = {
-- Chiave sviluppatore API di Pastebin da
-- https://pastebin.com/api#1
["api_dev_key"] = "FILL THIS WITH YOUR API DEVELOPER KEY",
["api_option"] = "paste", -- mantieni come "paste"
["api_paste_name"] = "HttpService:PostAsync", -- nome del post
["api_paste_code"] = "Ciao, mondo", -- contenuto del post
["api_paste_format"] = "text", -- formato del post
["api_paste_expire_date"] = "10M", -- data di scadenza
["api_paste_private"] = "0", -- 0=pubblico, 1=incluso, 2=privato
["api_user_key"] = "", -- chiave utente, se vuota pubblica come ospite
}
-- L'API di pastebin utilizza una stringa codificata in URL per i dati del post
-- Altre API potrebbero utilizzare JSON, XML o qualche altro formato
local data = ""
for k, v in pairs(dataFields) do
data = data .. ("&%s=%s"):format(HttpService:UrlEncode(k), HttpService:UrlEncode(v))
end
data = data:sub(2) -- Rimuovi il primo &
-- Ecco i dati che stiamo inviando
print(data)
-- Fai la richiesta
local response = HttpService:PostAsync(URL_PASTEBIN_NEW_PASTE, data, Enum.HttpContentType.ApplicationUrlEncoded, false)
-- La risposta sarà l'URL per il nuovo incollaggio (o una stringa di errore se qualcosa è andato storto)
print(response)
Apri Cloud tramite HttpService
-- Ricorda di abilitare le richieste HTTP nelle impostazioni dell'esperienza!
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}`, -- Aggiorna l'appartenenza di un utente a un gruppo
Method = "PATCH",
Headers = {
["Content-Type"] = "application/json", -- Quando si invia JSON, imposta questo!
["x-api-key"] = HttpService:GetSecret("APIKey"), -- Imposta nel Creator Hub
},
Body = HttpService:JSONEncode({ role = `groups/{groupId}/roles/{roleId}` }),
})
if response.Success then
print("La risposta è stata successosa:", response.StatusCode, response.StatusMessage)
else
print("La risposta ha restituito un errore:", response.StatusCode, response.StatusMessage)
end
print("Corpo della risposta:\n", response.Body)
print("Header della risposta:\n", HttpService:JSONEncode(response.Headers))
end
-- Ricorda di avvolgere la funzione in un 'pcall' per evitare che lo script si interrompa in caso di errore nella richiesta
local success, message = pcall(request)
if not success then
print("La richiesta Http non è riuscita a essere inviata:", message)
end

Riferimento API
Proprietà
HttpEnabled
Sicurezza Utente Locale
Lettura Parallela
Capacità: Network
HttpService.HttpEnabled:boolean

Metodi
CreateWebStreamClient
Capacità: Network
HttpService:CreateWebStreamClient(
streamClientType:Enum.WebStreamClientType, requestOptions:Dictionary
Parametri
streamClientType:Enum.WebStreamClientType
requestOptions:Dictionary
Restituzioni
Campioni di codice
HttpService CreaWebStreamClient SSE
local HttpService = game:GetService("HttpService")
local URL_GEMINI_SSE = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:streamGenerateContent?alt=sse&key="
local geminiSecret = HttpService:GetSecret("gemini_secret") -- Assume che tu abbia già caricato la tua chiave API di Gemini come un segreto locale
local url_with_secret = geminiSecret:AddPrefix(URL_GEMINI_SSE) -- Ricorda che i plugin non possono accedere ai segreti locali!
local function handleOpen(responseStatusCode, headers)
print("Stream aperto con codice di risposta:", responseStatusCode)
end
local function handleMessage(message)
-- Analizza gli eventi a seconda del tipo di stream
print("Messaggio dello stream ricevuto:", message)
end
local function request()
local sse_client = HttpService:CreateWebStreamClient(Enum.WebStreamClientType.RawStream, {
Url = url_with_secret,
Method = "POST",
Headers = {
["Content-Type"] = "application/json", -- Quando invii JSON, impostalo!
},
Body = HttpService:JSONEncode({ contents = { parts = { text ="Come funziona il protocollo SSE?" }}}),
})
local openConnection = sse_client.Opened:Connect(handleOpen)
local messageConnection = sse_client.MessageReceived:Connect(handleMessage)
sse_client.Closed:Wait()
openConnection:Disconnect()
messageConnection:Disconnect()
end
-- Ricorda di avvolgere la funzione in un 'pcall' per prevenire che lo script si interrompa se la richiesta fallisce
local success, message = pcall(request)
if not success then
print("WebStreamClient non riuscito:", message)
end
HttpService CreateWebStreamClient RawStream
local HttpService = game:GetService("HttpService")
local LOCAL_LLM_PORT = "http://localhost:11434/api/generate?stream=true"
local function handleMessage(message)
-- Analizza gli eventi a seconda del tipo di stream
-- Se l'intestazione Content-Type della risposta è JSON, puoi decodificarlo in questo modo:
local json = HttpService:JSONDecode(message)
end
local function handleError(responseStatusCode, errorMessage)
print("Errore dello stream con codice di risposta:", responseStatusCode)
end
local function request()
local sse_client = HttpService:CreateWebStreamClient(Enum.WebStreamClientType.RawStream, {
-- Server Llama3.2 LLM in esecuzione localmente usando Ollama
Url = LOCAL_LLM_PORT,
Method = "POST",
Headers = {
["Content-Type"] = "application/json", -- Quando si invia JSON, impostalo!
},
Body = HttpService:JSONEncode({ model="llama3.2", prompt ="Raccontami una barzelletta divertente"}),
})
local messageConnection = sse_client.MessageReceived:Connect(handleMessage)
local errorConnection = sse_client.Error:Connect(handleError)
sse_client.Closed:Wait()
messageConnection:Disconnect()
errorConnection:Disconnect()
sse_client:close()
end
-- Ricorda di avvolgere la funzione in un 'pcall' per prevenire che lo script si interrompa se la richiesta fallisce
local success, message = pcall(request)
if not success then
print("WebStreamClient fallito:", message)
end

GenerateGUID
Scrivi Parallelo
HttpService:GenerateGUID(wrapInCurlyBraces:boolean):string
Parametri
wrapInCurlyBraces:boolean
Valore predefinito: true
Restituzioni
Campioni di codice
HttpService GeneraGUID
local HttpService = game:GetService("HttpService")
local result = HttpService:GenerateGUID(true)
print(result) --> Esempio di output: {4c50eba2-d2ed-4d79-bec1-02a967f49c58}

GetAsync
Resa
Capacità: Network
HttpService:GetAsync(
url:Variant, nocache:boolean, headers:Variant
Parametri
url:Variant
nocache:boolean
Valore predefinito: false
headers:Variant
Restituzioni
Campioni di codice
Astronauti nello Spazio
local HttpService = game:GetService("HttpService")
local URL_ASTROS = "http://api.open-notify.org/astros.json"
-- Effettua la richiesta al nostro URL dell'endpoint
local response = HttpService:GetAsync(URL_ASTROS)
-- Analizza la risposta JSON
local data = HttpService:JSONDecode(response)
-- Le informazioni nella tabella dei dati dipendono dalla risposta JSON
if data.message == "success" then
print("Attualmente ci sono " .. data.number .. " astronauti nello spazio:")
for i, person in pairs(data.people) do
print(i .. ": " .. person.name .. " è su " .. person.craft)
end
end
Dov'è la Stazione Spaziale Internazionale?
local HttpService = game:GetService("HttpService")
-- Dov'è la Stazione Spaziale Internazionale in questo momento?
local URL_ISS = "http://api.open-notify.org/iss-now.json"
local function printISS()
local response
local data
-- Usa pcall nel caso in cui qualcosa vada storto
pcall(function()
response = HttpService:GetAsync(URL_ISS)
data = HttpService:JSONDecode(response)
end)
-- La nostra richiesta è fallita o il nostro JSON non è riuscito a essere analizzato?
if not data then
return false
end
-- Controlla completamente i nostri dati per validità. Questo dipende da quale endpoint stai
-- a cui stai inviando le tue richieste. Per questo esempio, questo endpoint è
-- descritto qui: http://open-notify.org/Open-Notify-API/ISS-Location-Now/
if data.message == "success" and data.iss_position then
if data.iss_position.latitude and data.iss_position.longitude then
print("La Stazione Spaziale Internazionale si trova attualmente a:")
print(data.iss_position.latitude .. ", " .. data.iss_position.longitude)
return true
end
end
return false
end
if printISS() then
print("Successo")
else
print("Qualcosa è andato storto")
end

GetSecret
Scrivi Parallelo
Capacità: Network
HttpService:GetSecret(key:string):Secret
Parametri
key:string
Restituzioni

JSONDecode
Scrivi Parallelo
HttpService:JSONDecode(input:string):Variant
Parametri
input:string
Restituzioni
Variant
Campioni di codice
HttpService JSONDecode
local HttpService = game:GetService("HttpService")
local jsonString = [[
{
"message": "success",
"info": {
"points": 120,
"isLeader": true,
"user": {
"id": 12345,
"name": "JohnDoe"
},
"past_scores": [50, 42, 95],
"best_friend": null
}
}
]]
local data = HttpService:JSONDecode(jsonString)
if data.message == "success" then
-- Poiché tab["hello"] e tab.hello sono equivalenti,
-- puoi anche usare data["info"]["points"] qui:
print("Ho " .. data.info.points .. " punti")
if data.info.isLeader then
print("Sono il leader")
end
print("Ho " .. #data.info.past_scores .. " punteggi passati")
print("Tutte le informazioni:")
for key, value in pairs(data.info) do
print(key, typeof(value), value)
end
end

JSONEncode
Scrivi Parallelo
HttpService:JSONEncode(input:Variant):string
Parametri
input:Variant
Restituzioni
Campioni di codice
HttpService JSONEncode
local HttpService = game:GetService("HttpService")
local tab = {
-- Ricorda: queste righe sono equivalenti
--["message"] = "success",
message = "success",
info = {
points = 123,
isLeader = true,
user = {
id = 12345,
name = "JohnDoe",
},
past_scores = { 50, 42, 95 },
best_friend = nil,
},
}
local json = HttpService:JSONEncode(tab)
print(json)

PostAsync
Resa
Capacità: Network
HttpService:PostAsync(
url:Variant, data:string, content_type:Enum.HttpContentType, compress:boolean, headers:Variant
Parametri
url:Variant
data:string
Valore predefinito: "ApplicationJson"
compress:boolean
Valore predefinito: false
headers:Variant
Restituzioni
Campioni di codice
Nuovo Post su Pastebin
local HttpService = game:GetService("HttpService")
local URL_PASTEBIN_NEW_PASTE = "https://pastebin.com/api/api_post.php"
local dataFields = {
-- Chiave sviluppatore API di Pastebin da
-- https://pastebin.com/api#1
["api_dev_key"] = "FILL THIS WITH YOUR API DEVELOPER KEY",
["api_option"] = "paste", -- mantieni come "paste"
["api_paste_name"] = "HttpService:PostAsync", -- nome del post
["api_paste_code"] = "Ciao, mondo", -- contenuto del post
["api_paste_format"] = "text", -- formato del post
["api_paste_expire_date"] = "10M", -- data di scadenza
["api_paste_private"] = "0", -- 0=pubblico, 1=incluso, 2=privato
["api_user_key"] = "", -- chiave utente, se vuota pubblica come ospite
}
-- L'API di pastebin utilizza una stringa codificata in URL per i dati del post
-- Altre API potrebbero utilizzare JSON, XML o qualche altro formato
local data = ""
for k, v in pairs(dataFields) do
data = data .. ("&%s=%s"):format(HttpService:UrlEncode(k), HttpService:UrlEncode(v))
end
data = data:sub(2) -- Rimuovi il primo &
-- Ecco i dati che stiamo inviando
print(data)
-- Fai la richiesta
local response = HttpService:PostAsync(URL_PASTEBIN_NEW_PASTE, data, Enum.HttpContentType.ApplicationUrlEncoded, false)
-- La risposta sarà l'URL per il nuovo incollaggio (o una stringa di errore se qualcosa è andato storto)
print(response)

RequestAsync
Resa
Capacità: Network
HttpService:RequestAsync(requestOptions:Dictionary):Dictionary
Parametri
requestOptions:Dictionary
Restituzioni
Campioni di codice
Invio di una richiesta HTTP
-- Ricorda di abilitare le richieste HTTP nelle impostazioni dell'esperienza!
local HttpService = game:GetService("HttpService")
local function request()
local response = HttpService:RequestAsync({
Url = "http://httpbin.org/post", -- Questo sito web aiuta a eseguire il debug delle richieste HTTP
Method = "POST",
Headers = {
["Content-Type"] = "application/json", -- Quando si invia JSON, impostalo così!
},
Body = HttpService:JSONEncode({ hello = "world" }),
})
if response.Success then
print("Codice di stato:", response.StatusCode, response.StatusMessage)
print("Corpo della risposta:\n", response.Body)
else
print("La richiesta è fallita:", response.StatusCode, response.StatusMessage)
end
end
-- Ricorda di avvolgere la funzione in un 'pcall' per evitare che lo script si interrompa se la richiesta fallisce
local success, message = pcall(request)
if not success then
print("La richiesta HTTP è fallita:", message)
end
Apri Cloud tramite HttpService
-- Ricorda di abilitare le richieste HTTP nelle impostazioni dell'esperienza!
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}`, -- Aggiorna l'appartenenza di un utente a un gruppo
Method = "PATCH",
Headers = {
["Content-Type"] = "application/json", -- Quando si invia JSON, imposta questo!
["x-api-key"] = HttpService:GetSecret("APIKey"), -- Imposta nel Creator Hub
},
Body = HttpService:JSONEncode({ role = `groups/{groupId}/roles/{roleId}` }),
})
if response.Success then
print("La risposta è stata successosa:", response.StatusCode, response.StatusMessage)
else
print("La risposta ha restituito un errore:", response.StatusCode, response.StatusMessage)
end
print("Corpo della risposta:\n", response.Body)
print("Header della risposta:\n", HttpService:JSONEncode(response.Headers))
end
-- Ricorda di avvolgere la funzione in un 'pcall' per evitare che lo script si interrompa in caso di errore nella richiesta
local success, message = pcall(request)
if not success then
print("La richiesta Http non è riuscita a essere inviata:", message)
end

UrlEncode
Scrivi Parallelo
Capacità: Network
HttpService:UrlEncode(input:string):string
Parametri
input:string
Restituzioni
Campioni di codice
HttpService UrlEncode
local HttpService = game:GetService("HttpService")
local content = "Je suis allé au cinéma." -- francese per "Sono andato al cinema"
local result = HttpService:UrlEncode(content)
print(result) --> Je%20suis%20all%C3%A9%20au%20cinema%2E
Nuovo Post su Pastebin
local HttpService = game:GetService("HttpService")
local URL_PASTEBIN_NEW_PASTE = "https://pastebin.com/api/api_post.php"
local dataFields = {
-- Chiave sviluppatore API di Pastebin da
-- https://pastebin.com/api#1
["api_dev_key"] = "FILL THIS WITH YOUR API DEVELOPER KEY",
["api_option"] = "paste", -- mantieni come "paste"
["api_paste_name"] = "HttpService:PostAsync", -- nome del post
["api_paste_code"] = "Ciao, mondo", -- contenuto del post
["api_paste_format"] = "text", -- formato del post
["api_paste_expire_date"] = "10M", -- data di scadenza
["api_paste_private"] = "0", -- 0=pubblico, 1=incluso, 2=privato
["api_user_key"] = "", -- chiave utente, se vuota pubblica come ospite
}
-- L'API di pastebin utilizza una stringa codificata in URL per i dati del post
-- Altre API potrebbero utilizzare JSON, XML o qualche altro formato
local data = ""
for k, v in pairs(dataFields) do
data = data .. ("&%s=%s"):format(HttpService:UrlEncode(k), HttpService:UrlEncode(v))
end
data = data:sub(2) -- Rimuovi il primo &
-- Ecco i dati che stiamo inviando
print(data)
-- Fai la richiesta
local response = HttpService:PostAsync(URL_PASTEBIN_NEW_PASTE, data, Enum.HttpContentType.ApplicationUrlEncoded, false)
-- La risposta sarà l'URL per il nuovo incollaggio (o una stringa di errore se qualcosa è andato storto)
print(response)

© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.