Lianja
Lianja
Manually Follow HTTP Redirects
See more HTTP Examples
Demonstrates how to manually follow redirects for an HTTP GET.Chilkat Lianja Downloads
llSuccess = .F.
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loHttp = createobject("CkHttp")
// 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:
loHttp.FollowRedirects = .F.
loResp = createobject("CkHttpResponse")
llSuccess = loHttp.HttpNoBody("GET","http://yandex.ru/",loResp)
if (llSuccess = .F.) then
? loHttp.LastErrorText
release loHttp
release loResp
return
endif
lnStatus = loResp.StatusCode
? "HTTP Response Status: " + str(lnStatus)
// The FinalRedirectUrl property will contain the redirect URL
// If FollowRedirects was equal to .T., then all of the
// intermediate redirects (if any) would be followed until
// there were no more redirects. However, because
// FollowRedirects is not .T., FinalRedirectUrl contains
// the next redirect URL.
lnLoopCount = 0
do while (lnStatus = 302)
? "Redirect URL: " + loHttp.FinalRedirectUrl
lcNextUrl = loHttp.FinalRedirectUrl
llSuccess = loHttp.HttpNoBody("GET",lcNextUrl,loResp)
if (llSuccess = .F.) then
? loHttp.LastErrorText
release loHttp
release loResp
return
endif
lnStatus = loResp.StatusCode
? "HTTP Response Status: " + str(lnStatus)
// For safety, prevent infinite loops by
// keeping a loopCount and only allows following a max
// of 10 redirects:
lnLoopCount = lnLoopCount + 1
if (lnLoopCount > 10) then
? "Too many redirects."
release loHttp
release loResp
return
endif
enddo
release loHttp
release loResp