Motor Sınıfı
HttpService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
Özet
Özellikler
Yöntemler
CreateWebStreamClient(streamClientType: Enum.WebStreamClientType,requestOptions: Dictionary):WebStreamClient |
GenerateGUID(wrapInCurlyBraces: boolean):string |
JSONDecode(input: string):Variant |
JSONEncode(input: Variant):string |
PostAsync(url: Variant,data: string,content_type: Enum.HttpContentType,compress: boolean,headers: Variant):string |
RequestAsync(requestOptions: Dictionary):Dictionary |
Kod Örnekleri
Uzayda Astronotlar
local HttpService = game:GetService("HttpService")
local URL_ASTROS = "http://api.open-notify.org/astros.json"
-- Uç nokta URL'mize isteği yap
local response = HttpService:GetAsync(URL_ASTROS)
-- JSON yanıtını ayrıştır
local data = HttpService:JSONDecode(response)
-- Veri tablosundaki bilgiler, yanıt JSON'una bağlıdır
if data.message == "success" then
print("Şu anda uzayda " .. data.number .. " astronot var:")
for i, person in pairs(data.people) do
print(i .. ": " .. person.name .. " " .. person.craft 'da bulunuyor')
end
endUluslararası Uzay İstasyonu nerede?
local HttpService = game:GetService("HttpService")
-- Uluslararası Uzay İstasyonu şu anda nerede?
local URL_ISS = "http://api.open-notify.org/iss-now.json"
local function printISS()
local response
local data
-- Bir şeyler ters giderse pcall kullanın
pcall(function()
response = HttpService:GetAsync(URL_ISS)
data = HttpService:JSONDecode(response)
end)
-- İsteğimiz başarısız mı oldu yoksa JSON'umuz mu ayrıştırılamadı?
if not data then
return false
end
-- Verilerimizin geçerliliğini tam olarak kontrol edin. Bu, isteğinizi göndereceğiniz
-- uç noktanıza bağlıdır. Bu örnek için, bu uç nokta burada tanımlanmıştır: 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("Uluslararası Uzay İstasyonu şu anda şurada:")
print(data.iss_position.latitude .. ", " .. data.iss_position.longitude)
return true
end
end
return false
end
if printISS() then
print("Başarı")
else
print("Bir şeyler yanlış gitti")
endYeni Pastebin Gönderisi
local HttpService = game:GetService("HttpService")
local URL_PASTEBIN_NEW_PASTE = "https://pastebin.com/api/api_post.php"
local dataFields = {
-- Pastebin API geliştirici anahtarı
-- https://pastebin.com/api#1
["api_dev_key"] = "BUNU GÖREVLİ API GİZLİ ANAHTARINIZLA DOLDURUN",
["api_option"] = "paste", -- "paste" olarak tutun
["api_paste_name"] = "HttpService:PostAsync", -- yapıştırma adı
["api_paste_code"] = "Merhaba, dünya", -- yapıştırma içeriği
["api_paste_format"] = "text", -- yapıştırma formatı
["api_paste_expire_date"] = "10M", -- sona erme tarihi
["api_paste_private"] = "0", -- 0=kamusal, 1=liste dışı, 2=özel
["api_user_key"] = "", -- kullanıcı anahtarı, boşsa konuk olarak gönder
}
-- Pastebin API, POST verisi için URL kodlu bir dize kullanır
-- Diğer API'ler JSON, XML veya başka bir format kullanabilir
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) -- İlk &'yi kaldır
-- Gönderdiğimiz veriler burada
print(data)
-- İsteği yap
local response = HttpService:PostAsync(URL_PASTEBIN_NEW_PASTE, data, Enum.HttpContentType.ApplicationUrlEncoded, false)
-- Yanıt, yeni yapıştırma için URL (veya bir sorun varsa bir hata dizesi) olacaktır
print(response)HttpService ile Açık Bulut
-- Deneyim ayarlarında HTTP İsteklerini etkinleştirmeyi unutmayın!
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}`, -- Bir kullanıcının grup üyeliğini günceller
Method = "PATCH",
Headers = {
["Content-Type"] = "application/json", -- JSON gönderirken bunu ayarlayın!
["x-api-key"] = HttpService:GetSecret("APIKey"), -- Creator Hub'da ayarlayın
},
Body = HttpService:JSONEncode({ role = `groups/{groupId}/roles/{roleId}` }),
})
if response.Success then
print("Yanıt başarılıydı:", response.StatusCode, response.StatusMessage)
else
print("Yanıt bir hata döndürdü:", response.StatusCode, response.StatusMessage)
end
print("Yanıt gövdesi:\n", response.Body)
print("Yanıt başlıkları:\n", HttpService:JSONEncode(response.Headers))
end
-- İsteğin başarısız olması durumunda, scriptin bozulmasını önlemek için fonksiyonu bir 'pcall' içinde sarın
local success, message = pcall(request)
if not success then
print("HTTP isteği gönderilemedi:", message)
endAPI Referansı
Özellikler
Yöntemler
CreateWebStreamClient
HttpService:CreateWebStreamClient(
Parametreler
Dönüşler
Kod Örnekleri
HttpService CreateWebStreamClient 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") -- Zaten Gemini API anahtarınızı bir yerel sır olarak yüklediğinizi varsayıyoruz
local url_with_secret = geminiSecret:AddPrefix(URL_GEMINI_SSE) -- Eklentilerin yerel sırlara erişemeyeceğini unutmayın!
local function handleOpen(responseStatusCode, headers)
print("Akış açıldı, yanıt kodu:", responseStatusCode)
end
local function handleMessage(message)
-- Akış türüne bağlı olarak olayları ayrıştır
print("Akış mesajı alındı:", message)
end
local function request()
local sse_client = HttpService:CreateWebStreamClient(Enum.WebStreamClientType.RawStream, {
Url = url_with_secret,
Method = "POST",
Headers = {
["Content-Type"] = "application/json", -- JSON gönderirken bunu ayarlayın!
},
Body = HttpService:JSONEncode({ contents = { parts = { text ="SSE protokolü nasıl çalışır?" }}}),
})
local openConnection = sse_client.Opened:Connect(handleOpen)
local messageConnection = sse_client.MessageReceived:Connect(handleMessage)
sse_client.Closed:Wait()
openConnection:Disconnect()
messageConnection:Disconnect()
end
-- İsteğin başarısız olması durumunda scriptin bozulmasını önlemek için işlevi 'pcall' içinde sarmayı unutmayın
local success, message = pcall(request)
if not success then
print("WebStreamClient başarısız oldu:", message)
endHttpService CreateWebStreamClient RawStream
local HttpService = game:GetService("HttpService")
local LOCAL_LLM_PORT = "http://localhost:11434/api/generate?stream=true"
local function handleMessage(message)
-- Akış türüne bağlı olarak olayları ayrıştır
-- Eğer yanıt Content-Type başlığı JSON ise, bunu şöyle çözümleyebilirsin:
local json = HttpService:JSONDecode(message)
end
local function handleError(responseStatusCode, errorMessage)
print("Yanıt kodu ile akış hatası:", responseStatusCode)
end
local function request()
local sse_client = HttpService:CreateWebStreamClient(Enum.WebStreamClientType.RawStream, {
-- Yerel olarak Ollama kullanarak çalışan Llama3.2 LLM sunucusu
Url = LOCAL_LLM_PORT,
Method = "POST",
Headers = {
["Content-Type"] = "application/json", -- JSON gönderirken bunu ayarla!
},
Body = HttpService:JSONEncode({ model="llama3.2", prompt ="Bana komik bir fıkra anlat"}),
})
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
-- İsteğin başarısız olması durumunda scriptin bozulmasını önlemek için işlevi 'pcall' ile sarmayı unutma
local success, message = pcall(request)
if not success then
print("WebStreamClient başarısız oldu:", message)
endGenerateGUID
Parametreler
| Varsayılan değer: true |
Dönüşler
Kod Örnekleri
HttpService GenerateGUID
local HttpService = game:GetService("HttpService")
local result = HttpService:GenerateGUID(true)
print(result) --> Örnek çıktı: {4c50eba2-d2ed-4d79-bec1-02a967f49c58}GetAsync
Parametreler
url:Variant |
| Varsayılan değer: false |
headers:Variant |
Dönüşler
Kod Örnekleri
Uzayda Astronotlar
local HttpService = game:GetService("HttpService")
local URL_ASTROS = "http://api.open-notify.org/astros.json"
-- Uç nokta URL'mize isteği yap
local response = HttpService:GetAsync(URL_ASTROS)
-- JSON yanıtını ayrıştır
local data = HttpService:JSONDecode(response)
-- Veri tablosundaki bilgiler, yanıt JSON'una bağlıdır
if data.message == "success" then
print("Şu anda uzayda " .. data.number .. " astronot var:")
for i, person in pairs(data.people) do
print(i .. ": " .. person.name .. " " .. person.craft 'da bulunuyor')
end
endUluslararası Uzay İstasyonu nerede?
local HttpService = game:GetService("HttpService")
-- Uluslararası Uzay İstasyonu şu anda nerede?
local URL_ISS = "http://api.open-notify.org/iss-now.json"
local function printISS()
local response
local data
-- Bir şeyler ters giderse pcall kullanın
pcall(function()
response = HttpService:GetAsync(URL_ISS)
data = HttpService:JSONDecode(response)
end)
-- İsteğimiz başarısız mı oldu yoksa JSON'umuz mu ayrıştırılamadı?
if not data then
return false
end
-- Verilerimizin geçerliliğini tam olarak kontrol edin. Bu, isteğinizi göndereceğiniz
-- uç noktanıza bağlıdır. Bu örnek için, bu uç nokta burada tanımlanmıştır: 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("Uluslararası Uzay İstasyonu şu anda şurada:")
print(data.iss_position.latitude .. ", " .. data.iss_position.longitude)
return true
end
end
return false
end
if printISS() then
print("Başarı")
else
print("Bir şeyler yanlış gitti")
endJSONDecode
Parametreler
Dönüşler
Variant
Kod Örnekleri
HttpService JSONDecode
local HttpService = game:GetService("HttpService")
local jsonString = [[
{
"message": "başarılı",
"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 == "başarılı" then
-- tab["hello"] ve tab.hello eşdeğerdir,
-- burada data["info"]["points"] ifadesini de kullanabilirsiniz:
print("Benim " .. data.info.points .. " puanım var")
if data.info.isLeader then
print("Ben liderim")
end
print("Toplam " .. #data.info.past_scores .. " geçmiş puanım var")
print("Tüm bilgiler:")
for key, value in pairs(data.info) do
print(key, typeof(value), value)
end
endJSONEncode
Parametreler
input:Variant |
Dönüşler
Kod Örnekleri
HttpService JSONEncode
local HttpService = game:GetService("HttpService")
local tab = {
-- Unutmayın: bu satırlar eşdeğerdir
--["message"] = "başarılı",
message = "başarılı",
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
HttpService:PostAsync(
Parametreler
url:Variant |
| Varsayılan değer: "ApplicationJson" |
| Varsayılan değer: false |
headers:Variant |
Dönüşler
Kod Örnekleri
Yeni Pastebin Gönderisi
local HttpService = game:GetService("HttpService")
local URL_PASTEBIN_NEW_PASTE = "https://pastebin.com/api/api_post.php"
local dataFields = {
-- Pastebin API geliştirici anahtarı
-- https://pastebin.com/api#1
["api_dev_key"] = "BUNU GÖREVLİ API GİZLİ ANAHTARINIZLA DOLDURUN",
["api_option"] = "paste", -- "paste" olarak tutun
["api_paste_name"] = "HttpService:PostAsync", -- yapıştırma adı
["api_paste_code"] = "Merhaba, dünya", -- yapıştırma içeriği
["api_paste_format"] = "text", -- yapıştırma formatı
["api_paste_expire_date"] = "10M", -- sona erme tarihi
["api_paste_private"] = "0", -- 0=kamusal, 1=liste dışı, 2=özel
["api_user_key"] = "", -- kullanıcı anahtarı, boşsa konuk olarak gönder
}
-- Pastebin API, POST verisi için URL kodlu bir dize kullanır
-- Diğer API'ler JSON, XML veya başka bir format kullanabilir
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) -- İlk &'yi kaldır
-- Gönderdiğimiz veriler burada
print(data)
-- İsteği yap
local response = HttpService:PostAsync(URL_PASTEBIN_NEW_PASTE, data, Enum.HttpContentType.ApplicationUrlEncoded, false)
-- Yanıt, yeni yapıştırma için URL (veya bir sorun varsa bir hata dizesi) olacaktır
print(response)RequestAsync
Parametreler
Dönüşler
Kod Örnekleri
HTTP Talebi Gönderme
-- HTTP İsteklerini deneyim ayarlarında etkinleştirmeyi unutmayın!
local HttpService = game:GetService("HttpService")
local function request()
local response = HttpService:RequestAsync({
Url = "http://httpbin.org/post", -- Bu web sitesi HTTP isteklerini debug etmeye yardımcı olur
Method = "POST",
Headers = {
["Content-Type"] = "application/json", -- JSON gönderirken bunu ayarlayın!
},
Body = HttpService:JSONEncode({ hello = "dünya" }),
})
if response.Success then
print("Durum kodu:", response.StatusCode, response.StatusMessage)
print("Yanıt gövdesi:\n", response.Body)
else
print("İstek başarısız oldu:", response.StatusCode, response.StatusMessage)
end
end
-- İsteğin başarısız olması durumunda scriptin bozulmaması için fonksiyonu 'pcall' içine almayı unutmayın
local success, message = pcall(request)
if not success then
print("Http İsteği başarısız oldu:", message)
endHttpService ile Açık Bulut
-- Deneyim ayarlarında HTTP İsteklerini etkinleştirmeyi unutmayın!
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}`, -- Bir kullanıcının grup üyeliğini günceller
Method = "PATCH",
Headers = {
["Content-Type"] = "application/json", -- JSON gönderirken bunu ayarlayın!
["x-api-key"] = HttpService:GetSecret("APIKey"), -- Creator Hub'da ayarlayın
},
Body = HttpService:JSONEncode({ role = `groups/{groupId}/roles/{roleId}` }),
})
if response.Success then
print("Yanıt başarılıydı:", response.StatusCode, response.StatusMessage)
else
print("Yanıt bir hata döndürdü:", response.StatusCode, response.StatusMessage)
end
print("Yanıt gövdesi:\n", response.Body)
print("Yanıt başlıkları:\n", HttpService:JSONEncode(response.Headers))
end
-- İsteğin başarısız olması durumunda, scriptin bozulmasını önlemek için fonksiyonu bir 'pcall' içinde sarın
local success, message = pcall(request)
if not success then
print("HTTP isteği gönderilemedi:", message)
endUrlEncode
Parametreler
Dönüşler
Kod Örnekleri
HttpService UrlEncode
local HttpService = game:GetService("HttpService")
local content = "Je suis allé au cinéma." -- Fransızca "Sinema'ya gittim"
local result = HttpService:UrlEncode(content)
print(result) --> Je%20suis%20all%C3%A9%20au%20cinema%2EYeni Pastebin Gönderisi
local HttpService = game:GetService("HttpService")
local URL_PASTEBIN_NEW_PASTE = "https://pastebin.com/api/api_post.php"
local dataFields = {
-- Pastebin API geliştirici anahtarı
-- https://pastebin.com/api#1
["api_dev_key"] = "BUNU GÖREVLİ API GİZLİ ANAHTARINIZLA DOLDURUN",
["api_option"] = "paste", -- "paste" olarak tutun
["api_paste_name"] = "HttpService:PostAsync", -- yapıştırma adı
["api_paste_code"] = "Merhaba, dünya", -- yapıştırma içeriği
["api_paste_format"] = "text", -- yapıştırma formatı
["api_paste_expire_date"] = "10M", -- sona erme tarihi
["api_paste_private"] = "0", -- 0=kamusal, 1=liste dışı, 2=özel
["api_user_key"] = "", -- kullanıcı anahtarı, boşsa konuk olarak gönder
}
-- Pastebin API, POST verisi için URL kodlu bir dize kullanır
-- Diğer API'ler JSON, XML veya başka bir format kullanabilir
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) -- İlk &'yi kaldır
-- Gönderdiğimiz veriler burada
print(data)
-- İsteği yap
local response = HttpService:PostAsync(URL_PASTEBIN_NEW_PASTE, data, Enum.HttpContentType.ApplicationUrlEncoded, false)
-- Yanıt, yeni yapıştırma için URL (veya bir sorun varsa bir hata dizesi) olacaktır
print(response)