TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | Custom |
ReleasedLast Release | Dec 2014 |
Maintained by Unclaimed.
DLDownload is a lightweight block based wrapper around NSURLConnection.
pod "DLDownload"
to your Podfile, import as necessary with: #import "DLDownload.h"
.DLDownload.{h,m}
to your project, import as necessary with: #import "DLDownload.h"
.Documentation for DLDownload can be found on Github Pages.
Please feel free to fork the code, and submit pull requests for any new features or fixes.
DLDownload *download = [[DLDownload alloc] init];
download.url = [NSURL URLWithString:@"http://track8.fm/api/track"];
download.parameters = @{@"short_code":@"rA"};
download.callback = ^(NSData *data, NSError *error) {
if(error) {
// handle error.
} else {
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:data options:0 error:0];
NSDictionary *trackData = [jsonData objectForKey:@"track"];
NSLog(@"%@", [trackData objectForKey:@"name"]);
}
};
[download start];
HTTP methods supported include: GET
, POST
, DELETE
, PUT
, PATCH
.
DLDownload *download = [[DLDownload alloc] init];
download.method = DLDownloadMethodPOST;
download.url = [NSURL URLWithString:@"http://track8.fm/api/track"];
download.parameters = @{@"artist":@"Finch", @"track":@"Ender"};
download.callback = ^(NSData *data, NSError *error) {
if(error) {
// handle error.
} else {
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:data options:0 error:0];
NSDictionary *trackData = [jsonData objectForKey:@"track"];
NSLog(@"%@ : %@", [trackData objectForKey:@"name"], [trackData objectForKey:@"linkURL"]);
}
};
[download start];
DLDownload *download = [[DLDownload alloc] init];
download.method = DLDownloadMethodPOST;
download.url = [NSURL URLWithString:@"http://imgsrc.hubblesite.org/hu/db/images/hs-2006-10-a-hires_jpg.jpg"];
download.updateProgressCallback = ^(NSUInteger bytesReceived, NSUInteger expectedLength, CGFloat percent) {
NSLog(@"%i%% Complete", (int)(percent * 100));
};
download.callback = ^(NSData *data, NSError *error) {
if(error) {
// handle error.
} else {
UIImage *hubbleImage = [UIImage imageWithData:data];
self.someImageView.image = hubbleImage;
}
};
[download start];
NSString *authorizationHeader = [NSString stringWithFormat:@"Bearer %@", @"UserServiceAccessToken"];
NSMutableDictionary *headerFields = @{@"Authorization":authorizationHeader, @"content-type": @"application/json" };
DLDownload *download = [[DLDownload alloc] init];
download.HTTPHeaderFields = headerFields;
// define properties and methods here.
[download start];
DLDownload *download = [[DLDownload alloc] init];
download.bodyData = [NSJSONSerialization dataWithJSONObject:@{@"text":@"Message to post to a social network."} options:0 error:0];
// define properties and methods here.
[download start];
DLDownload *download = [[DLDownload alloc] init];
download.credential = [NSURLCredential credentialWithUser:@"username" password:@"password" persistence:NSURLCredentialPersistenceForSession];
// define properties and methods here.
[download start];
DLDownloadDidBeginNotification
DLDownloadDidEndNotification
You do not need to encode parameters. All parameters are properly encoded by DLDownload before the call is made.