https://github.com/elfsundae/afnetworkextension
AFNetworking 3/4 Extensions
https://github.com/elfsundae/afnetworkextension
afnetworking extension ios logging networking reachability
Last synced: 10 months ago
JSON representation
AFNetworking 3/4 Extensions
- Host: GitHub
- URL: https://github.com/elfsundae/afnetworkextension
- Owner: ElfSundae
- License: mit
- Created: 2019-06-18T07:27:50.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2021-03-18T12:19:52.000Z (about 5 years ago)
- Last Synced: 2025-08-15T01:55:35.569Z (10 months ago)
- Topics: afnetworking, extension, ios, logging, networking, reachability
- Language: Objective-C
- Homepage:
- Size: 122 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AFNetworkExtension
[](https://github.com/ElfSundae/AFNetworkExtension/actions?query=workflow%3ABuild)


[AFNetworking](https://github.com/AFNetworking/AFNetworking) 3/4 extensions.
## Installation
```ruby
pod 'AFNetworkExtension'
```
You may also like to install my patched [`AFNetworking`](https://github.com/ElfSundae/AFNetworking) and [`AFNetworkActivityLogger`](https://github.com/ElfSundae/CocoaPods-Specs/tree/master/Specs/AFNetworkActivityLogger) pods, just add my spec-repo source URL before the Trunk source in your `Podfile`:
```ruby
source 'https://github.com/ElfSundae/CocoaPods-Specs.git'
source 'https://cdn.cocoapods.org/'
target 'Example' do
pod 'AFNetworkExtension'
end
```
## Usage
```objc
NSURL *baseURL = [NSURL URLWithString:@"https://api.github.com"];
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
```
### [AFNetworkActivityLogger](https://github.com/AFNetworking/AFNetworkActivityLogger) extension
```objc
#if DEBUG
manager.logger.enabled = YES;
[manager.logger setLogLevel:AFLoggerLevelDebug];
#endif
```
### AFHTTPSessionManager extension
```objc
// 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:
```objc
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
```objc
manager.requestSerializer.HTTPRequestHeadersBlock = ^NSDictionary * (NSURLRequest * request, id parameters) {
return @{ @"FooHeader": NSUUID.UUID.UUIDString };
};
manager.requestSerializer.URLQueryParametersBlock = ^NSDictionary * (NSString * method, NSString * URLString, id parameters) {
return @{ @"_time": @((long)NSDate.date.timeIntervalSince1970) };
};
```
## License
AFNetworkExtension is available under the MIT license. See the [LICENSE](LICENSE) file for more info.