Swift
Swift
Manually Follow HTTP Redirects
See more HTTP Examples
Demonstrates how to manually follow redirects for an HTTP GET.Chilkat Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
// 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.followRedirects = false
let resp = CkoHttpResponse()!
success = http.httpNoBody(verb: "GET", url: "http://yandex.ru/", response: resp)
if success == false {
print("\(http.lastErrorText!)")
return
}
var status: Int = resp.statusCode.intValue
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.
var loopCount: Int = 0
while (status == 302) {
print("Redirect URL: \(http.finalRedirectUrl!)")
var nextUrl: String? = http.finalRedirectUrl
success = http.httpNoBody(verb: "GET", url: nextUrl, response: resp)
if success == false {
print("\(http.lastErrorText!)")
return
}
status = resp.statusCode.intValue
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 {
print("Too many redirects.")
return
}
}
}