Sample code for 30+ languages & platforms
Objective-C

HTTP Download with Progress Event Callbacks

See more HTTP Examples

Downloads a file via HTTP or HTTPS and uses event callbacks to monitor progress.

Chilkat Objective-C Downloads

Objective-C
// This is the interface header httpProgress.h
#import "CkoHttpProgress.h"

@interface httpProgress : CkoHttpProgress {
}

- (void)AbortCheck: (BOOL *)abort;
- (void)PercentDone: (NSNumber *)pctDone abort: (BOOL *)abort;
- (void)ProgressInfo:(NSString *)pinfName value:(NSString *)pinfValue;
@end
// ----------------------------------------------------

#import <httpProgress.h>
@implementation httpProgress

- (void)AbortCheck: (BOOL *)abort
{
        
}

- (void)PercentDone: (NSNumber *)pctDone abort: (BOOL *)abort
{
    int percentDone = [pctDone intValue];
        NSLog(@"%@%d",@"Percent Done: ",percentDone);
    // Explicitly abort at 25% or greater.
    // Remove this to allow for the HTTP download to run to completion.
    if (percentDone > 25) {
        *abort = YES;
    }
}

- (void)ProgressInfo:(NSString *)pinfName value:(NSString *)pinfValue
{
        NSLog(@"%@%@%@",pinfName,@": ",pinfValue);
}

@end

// ----------------------------------------------------

#import <CkoHttp.h>
#import <NSString.h>

BOOL success = NO;

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

CkoHttp *http = [[CkoHttp alloc] init];
httpProgress *http_progress = [[httpProgress alloc] init];
[http setEventCallbackObject: http_progress];

// Set a heartbeat in milliseconds 
http.HeartbeatMs = [NSNumber numberWithInt:200];

// Download a file...
NSString *localFilePath = @"qa_output/Python-3.4.4.tar.xz";
success = [http Download: @"https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz" saveToPath: localFilePath];
if (success == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

NSLog(@"%@",@"OK!");