Objective-C
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
// 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!");