JSON과 HTTP 통신

개요

HttpService를 사용하면 외부 Http 서버와 통신할 수 있습니다. 외부 API 서버에서 데이터를 가져와 월드에 활용하거나, 데이터를 외부 API 서버로 보낸 후 응답받은 데이터를 월드에 활용할 수 있습니다.

사용 방법

기능
설명

GetAsync(url)

url의 응답 받기

PostAsync(url, data)

url로 data를 보내고 응답 받기

JSONEncode(tableData)

table 형식의 tableData를 JSON string 형태로 변환 및 반환

JSONDecode(json)

JSON 형식의 JSON을 table 형태로 변환 및 반환

URL에서 응답 받기

baseUrl 변수에 입력된 url 링크에 HTTP GET 요청을 보내고 응답을 받아 response 변수에 저장하고 print하는 예시 코드입니다.

-- HttpService 불러오기
local HttpService = game:GetService("HttpService")
local baseUrl = "HTTP URL을 입력하세요"

local success, errorMessageOrResult, response = nil, nil, nil

local function HttpGet()
    -- 비동기 요청이 실패하거나 오류가 발생할 수 있으므로 pcall()로 예외 처리
    success, errorMessageOrResult = pcall(function()
        -- "baseUrl" 주소로 HTTP GET 요청을 보낸 후 받은 응답을 "response" 변수에 저장
        response = HttpService:GetAsync(baseUrl)
    end)
    
    local messageSuccess = string.format("success: %s", success)
    local messageErrorOrResult = string.format("errorMessageOrResult: %s", errorMessageOrResult)
    local messageResponse = string.format("response: %s", response)
    
    print("messageSuccess: ", messageSuccess)
    print("messageErrorOrResult: ", messageErrorOrResult)
    print("messageResponse: ", messageResponse)
end

URL에 JSON 데이터 보내고 응답 받기

baseUrl 변수에 입력된 url 링크에 월드에서 사용하던 table 데이터를 JSON으로 인코딩하여 HTTP POST 요청을 보내고 응답을 받아 response 변수에 저장하고 print하는 예시 코드입니다.

URL에서 응답 받은 JSON 데이터 활용하기

baseUrl 변수에 입력된 url 링크에 HTTP GET 요청을 보내고 응답을 받아 response 변수에 저장하고 응답받은 데이터가 JSON이라는 가정 하에 table로 Decoding한 후 print하는 예시 코드입니다.

주의사항

사용하시는 API 주소 마다 분당 요청 수 등의 제한이 있을 수 있습니다. 원하는 기능 구현에 있어 반드시 해당 API 주소의 요청 수를 확인하시기 바랍니다.

Last updated