Sample code for 30+ languages & platforms
Lua

Manually Follow HTTP Redirects

See more HTTP Examples

Demonstrates how to manually follow redirects for an HTTP GET.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

local http = chilkat.Http.new()

-- The FollowRedirects property controls whether redirects
-- are automatically followed.  The default behavior is to
-- automatically follow redirects.

-- Explicitly set FollowRedirects so that redirects are NOT automatically taken:
http.follow_redirects = false

local resp = chilkat.HttpResponse.new()
local success = http:http_no_body("GET", "http://yandex.ru/", resp)
if not success then
    print(http.last_error_text)
    return
end

local status = resp.status_code
print("HTTP Response Status: " .. status)

-- The FinalRedirectUrl property will contain the redirect URL
-- If FollowRedirects was equal to true, then all of the
-- intermediate redirects (if any) would be followed until
-- there were no more redirects.  However, because
-- FollowRedirects is not true, FinalRedirectUrl contains
-- the next redirect URL.

local loopCount = 0

while status == 302 do
    print("Redirect URL: " .. http.final_redirect_url)

    local nextUrl = http.final_redirect_url
    success = http:http_no_body("GET", nextUrl, resp)
    if not success then
        print(http.last_error_text)
        return
    end

    status = resp.status_code
    print("HTTP Response Status: " .. status)

    -- For safety, prevent infinite loops by
    -- keeping a loopCount and only allows following a max
    -- of 10 redirects:
    loopCount = loopCount + 1
    if loopCount > 10 then
        print("Too many redirects.")
        return
    end
end