Courier is a simple network layer built on NSURLSession and various categories of convenience.
- Easy network activity display management
- Respond to changes in reachability
- Respond to 401 unauthorized errors
- Request logging
- Easily build NSURLRequests with proper encoding
#import <Courier/Courier.h>
// Default config
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
// Add additional headers
config.HTTPAdditionalHeaders = @{@"Accept" : @"application/json"};
// Be a good API citizen and limit to 1 HTTP connection per host
config.HTTPMaximumConnectionsPerHost = 1;
// Build session controller
CRSessionController *sessionController = [CRSessionController sessionControllerWithConfiguration:config
delegate:controller];
// Build a POST request
NSMutableURLRequest *request = [NSMutableURLRequest requestWithMethod:@"POST"
path:@"https://service.com/api"
encoding:CR_URLJSONParameterEncoding
URLParameters:@{@"urlParam" : @"value"}
HTTPBodyParameters:@{@"bodyParam" : @"value"}
header:@{@"Header-Name" : @"value"}];
// Build a task
NSURLSessionDataTask *task = [sessionController dataTaskForRequest:request
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
if (response.success) {
// Hurrah!
}
}];
// Start task
[task resume];
- Reachability library was created and maintained by Tony Million.