Sample code for 30+ languages & platforms
Objective-C

Http Follow Redirects

See more HTTP Examples

Demonstrates how to automatically follow redirects.

Chilkat Objective-C Downloads

Objective-C
#import <CkoHttp.h>
#import <NSString.h>

CkoHttp *http = [[CkoHttp alloc] init];

//  If you would like to see the HTTP session log to see how 
//  HTTP redirects were followed.
http.SessionLogFilename = @"c:/temp/qa_output/sessionLog.txt";

//  Run the test using this URL.
//  (Works while httpbin.org keeps the test endpoint available.)

NSString *url = @"https://httpbin.org/redirect-to?url={$redirectUrl}&status_code={$statusCode}";

[http SetUrlVar: @"redirectUrl" value: @"https://chilkatsoft.com/helloWorld.json"];
[http SetUrlVar: @"statusCode" value: @"302"];

NSString *jsonResponse = [http QuickGetStr: url];
if (http.LastMethodSuccess == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

NSLog(@"%@%d",@"Response status code: ",[http.LastStatus intValue]);
NSLog(@"%@",jsonResponse);

//  How to tell if the request was redirected, and if so,
//  what was the final redirect URL?
NSLog(@"%@%d",@"Was Redirected: ",http.WasRedirected);
NSLog(@"%@%@",@"Final Redirect URL: ",http.FinalRedirectUrl);

//  Output:

//  Response status code: 200
//  { "hello": "world" }
//  Was Redirected: True
//  Final Redirect URL: https://chilkatsoft.com/helloWorld.json

//  -----------------------------------------------
//  Here are the contents of the sessionLog.txt

//  ---- Sending Sat, 30 Aug 2025 11:41:37 GMT ----
//  GET /redirect-to?url=https%3A%2F%2Fchilkatsoft.com%2FhelloWorld.json&status_code=302 HTTP/1.1
//  Host: httpbin.org
//  Accept: */*
//  Accept-Encoding: gzip
//  
//  
//  ---- Received Sat, 30 Aug 2025 11:41:37 GMT ----
//  HTTP/1.1 302 FOUND
//  Date: Sat, 30 Aug 2025 11:41:38 GMT
//  Content-Type: text/html; charset=utf-8
//  Content-Length: 0
//  Connection: keep-alive
//  Server: gunicorn/19.9.0
//  Location: https://chilkatsoft.com/helloWorld.json
//  Access-Control-Allow-Origin: *
//  Access-Control-Allow-Credentials: true
//  
//  
//  ---- Sending Sat, 30 Aug 2025 11:41:38 GMT ----
//  GET /helloWorld.json HTTP/1.1
//  Host: chilkatsoft.com
//  Accept: */*
//  Accept-Encoding: gzip
//  
//  
//  ---- Received Sat, 30 Aug 2025 11:41:38 GMT ----
//  HTTP/1.1 200 OK
//  Content-Type: application/json
//  Last-Modified: Sun, 20 Aug 2023 11:36:27 GMT
//  Accept-Ranges: bytes
//  ETag: "34c27f8e5ad3d91:0"
//  Server: Microsoft-IIS/10.0
//  X-Powered-By: ASP.NET
//  Date: Sat, 30 Aug 2025 11:41:38 GMT
//  Content-Length: 22
//  
//  { "hello": "world" }