An open API service indexing awesome lists of open source software.

https://github.com/elfsundae/afnetworkextension

AFNetworking 3/4 Extensions
https://github.com/elfsundae/afnetworkextension

afnetworking extension ios logging networking reachability

Last synced: about 2 months ago
JSON representation

AFNetworking 3/4 Extensions

Awesome Lists containing this project

README

          

# AFNetworkExtension

[![Build status](https://github.com/ElfSundae/AFNetworkExtension/workflows/Build/badge.svg)](https://github.com/ElfSundae/AFNetworkExtension/actions?query=workflow%3ABuild)
![CocoaPods](https://img.shields.io/cocoapods/v/AFNetworkExtension)
![CocoaPods platforms](https://img.shields.io/cocoapods/p/AFNetworkExtension)

[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.