Sample code for 30+ languages & platforms
Lua

Initialize an HTTP Request from a URL

See more HTTP Examples

Demonstrates how to initialize an HTTP request object from a URL.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

local req = chilkat.HttpRequest.new()

-- Loads the HTTP request object from a URL
req:set_from_url("https://www.youtube.com/watch?v=fAZdTchQePc&t=45s")

-- The verb will be "GET"
print("verb = " .. req.http_verb)
-- The path will be "/watch"
print("path = " .. req.path)

-- The output of this loop will be
-- 0) v: fAZdTchQePc
-- 1) t: 45s
local numParams = req.num_params
for i = 0, numParams - 1 do
    print(i .. ") " .. req:get_param_name(i) .. ": " .. req:get_param_value(i))
end

-- View the request that would be sent if HttpSReq is called.
-- The HTTP request will be a GET that looks like this:
--
--     GET /watch?v=fAZdTchQePc&t=45s HTTP/1.1
--     Host: domain
--
-- Note: The HOST header will automatically get filled in with the actual domain when HttpSReq is called.

print(req:generate_request_text())

-- We can add additional params
req:add_param("artist", "Richard Bona")
req:add_param("musicType", "Jazz")
req:add_param("festival", "Estival Jazz Lugano")
req:add_param("year", "2008")

-- Now examine the request that would be sent
--
--     GET /watch?v=fAZdTchQePc&t=45s&artist=Richard%20Bona&musicType=Jazz&festival=Estival%20Jazz%20Lugano&year=2008 HTTP/1.1
--     Host: domain
--
print(req:generate_request_text())

-- We can remove a parameter:
req:remove_param("t")
print(req:generate_request_text())

-- What happens if we change the request from a GET to a POST?
req.http_verb = "POST"
-- The request will now look like this:
--
--    POST /watch HTTP/1.1
--    Host: domain
--    Content-Length: 93
--
--    v=fAZdTchQePc&artist=Richard%20Bona&musicType=Jazz&festival=Estival%20Jazz%20Lugano&year=2008
--
print(req:generate_request_text())

-- What happens if we make it a multipart/form-data?
req.content_type = "multipart/form-data"
-- Now the POST looks like this:
--
--    POST /watch HTTP/1.1
--    Content-Type: multipart/form-data; boundary=------------020906020106050705030807
--    Host: domain
--    Content-Length: 545
--
--    --------------020906020106050705030807
--    Content-Disposition: form-data; name="v"
--
--    fAZdTchQePc
--    --------------020906020106050705030807
--    Content-Disposition: form-data; name="artist"
--
--    Richard Bona
--    --------------020906020106050705030807
--    Content-Disposition: form-data; name="musicType"
--
--    Jazz
--    --------------020906020106050705030807
--    Content-Disposition: form-data; name="festival"
--
--    Estival Jazz Lugano
--    --------------020906020106050705030807
--    Content-Disposition: form-data; name="year"
--
--    2008
--    --------------020906020106050705030807--

print(req:generate_request_text())