Lua
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
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())