Visual FoxPro
Visual FoxPro
Manually Follow HTTP Redirects
See more HTTP Examples
Demonstrates how to manually follow redirects for an HTTP GET.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL loResp
LOCAL lnStatus
LOCAL lnLoopCount
LOCAL lcNextUrl
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loHttp = CreateObject('Chilkat.Http')
* 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 = 0
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpNoBody("GET","http://yandex.ru/",loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loResp
CANCEL
ENDIF
lnStatus = loResp.StatusCode
? "HTTP Response Status: " + STR(lnStatus)
* The FinalRedirectUrl property will contain the redirect URL
* If FollowRedirects was equal to 1, then all of the
* intermediate redirects (if any) would be followed until
* there were no more redirects. However, because
* FollowRedirects is not 1, FinalRedirectUrl contains
* the next redirect URL.
lnLoopCount = 0
DO WHILE (lnStatus = 302)
? "Redirect URL: " + loHttp.FinalRedirectUrl
lcNextUrl = loHttp.FinalRedirectUrl
lnSuccess = loHttp.HttpNoBody("GET",lcNextUrl,loResp)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loResp
CANCEL
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
CANCEL
ENDIF
ENDDO
RELEASE loHttp
RELEASE loResp