AFNetworkExtension
AFNetworking 3/4 extensions.
Installation
pod 'AFNetworkExtension'
You may also like to install my patched AFNetworking
and AFNetworkActivityLogger
pods, just add my spec-repo source URL before the Trunk source in your Podfile
:
source 'https://github.com/ElfSundae/CocoaPods-Specs.git'
source 'https://cdn.cocoapods.org/'
target 'Example' do
pod 'AFNetworkExtension'
end
Usage
NSURL *baseURL = [NSURL URLWithString:@"https://api.github.com"];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
AFNetworkActivityLogger extension
#if DEBUG
manager.logger.enabled = YES;
[manager.logger setLogLevel:AFLoggerLevelDebug];
#endif
AFHTTPSessionManager extension
// https://api.github.com/users/ElfSundae
NSURL *url = [manager URLWithPath:@"users/ElfSundae"];
// Get all tasks which API path has prefix "/users/"
[manager tasksWithPath:@"users/*"];
// Get all POST tasks that requesting API path "/foo/bar"
[manager tasksWithPath:@"foo/bar" method:@"POST"];
AFNetworkReachabilityManager extension
Get a string representation of an AFNetworkReachabilityStatus
value:
AFNetworkReachabilityManager *reachability = [AFNetworkReachabilityManager sharedManager];
// 2
NSLog(@"%ld", reachability.networkReachabilityStatus);
// @"WiFi"
NSLog(@"%@", reachability.networkReachabilityStatusString);
// @"Reachable via WiFi"
NSLog(@"%@", reachability.localizedNetworkReachabilityStatusString);
// WWAN
NSLog(@"%@", AFNetworkReachabilityStatusString(AFNetworkReachabilityStatusReachableViaWWAN));
AFHTTPRequestSerializer extension
manager.requestSerializer.HTTPRequestHeadersBlock = ^NSDictionary<NSString *, id> * (NSURLRequest * request, id parameters) {
return @{ @"FooHeader": NSUUID.UUID.UUIDString };
};
manager.requestSerializer.URLQueryParametersBlock = ^NSDictionary<NSString *, id> * (NSString * method, NSString * URLString, id parameters) {
return @{ @"_time": @((long)NSDate.date.timeIntervalSince1970) };
};
License
AFNetworkExtension is available under the MIT license. See the LICENSE file for more info.