HTTP 요청 보내기

Lua:
HTTP 요청 보내기

How to: (어떻게 하나요?)

Lua에서 HTTP 요청을 하려면, socket.http 라이브러리나 luasocket 모듈을 사용할 수 있습니다. 먼저 luasocket를 설치해야 합니다:

-- Luasocket library 설치
luarocks install luasocket

GET 요청 예시:

local http = require("socket.http")

-- HTTP GET 요청 보내기
local response_body = {}

http.request{
    url = "http://httpbin.org/get",
    sink = ltn12.sink.table(response_body)
}

-- 응답 출력하기
print(table.concat(response_body))

POST 요청 예시:

local http = require("socket.http")
local ltn12 = require("ltn12")

-- 데이터 정의
local request_body = "name=Lua&programming=isFun"
local response_body = {}

-- HTTP POST 요청 보내기
http.request{
    url = "http://httpbin.org/post",
    method = "POST",
    headers = {
        ["Content-Type"] = "application/x-www-form-urlencoded",
        ["Content-Length"] = tostring(#request_body)
    },
    source = ltn12.source.string(request_body),
    sink = ltn12.sink.table(response_body)
}

-- 응답 출력하기
print(table.concat(response_body))

Deep Dive (심화 학습)

과거엔 Lua에 표준 HTTP 라이브러리가 없어 대부분의 HTTP 작업이 외부 라이브러리에 의존했습니다. luasocket은 가장 인기 있는 선택지 중 하나입니다. Lua의 버전 5.1부터 사용됩니다. socket.http는 단순한 사용을 위해, copas.httplua-http 같은 라이브러리는 좀 더 고급 기능과 비동기 작업을 위해 존재합니다.

See Also (더 알아보기)