/ACSNetworking

在AFNetworking的基础加以封装

Primary LanguageObjective-CMIT LicenseMIT

ACSNetworking

ACSNetworking是一个依赖于AFNetworking的网络请求的库,其主要目的是为了使用更便捷,更高效。初次写库,如有什么写的不对或是不好的地方还请在Issues指出。

怎么导入项目中?

直接导入

下载 ACSNetworking 然后导入到你的iOS或者OSX项目中,注意你还得下载 AFNetworking

使用CocoaPods

Podfile

platform :ios, '7.0'
pod "ACSNetworking", "~> 1.3"

Requester

  • ACSURLHTTPRequester
  • ACSFileDownloader
  • ACSFileUploader

Cache

  • ACSCache

Configuration

  • ACSNetworkConfiguration

Reachability

  • ACSNetworkReachabilityManager

RequestManager

  • ACSRequestManager

用法

Configuration

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    [ACSNetworkConfiguration defaultConfiguration].baseURL = [NSURL URLWithString:@"http://example.com"];
    [ACSNetworkConfiguration defaultConfiguration].cacheExpirationTimeInterval = 180.0;
    [ACSNetworkConfiguration defaultConfiguration].downloadExpirationTimeInterval = 60.0 * 60.0 * 24.0 * 7;
    
    [ACSNetworkConfiguration defaultConfiguration].securityPolicy = [AFSecurityPolicy defaultPolicy];
    
    return YES;
}

GET Request

// Block
ACSRequestManager *manager = [ACSRequestManager manager];
ACSURLHTTPRequester *requester = ACSCreateGETRequester([NSURL URLWithString:@"http://example.com/resources.json"], nil, ^(id result, NSError *error) {
        if (result) {
            NSLog(@"responseObject %@", result);
        }
        else {
            NSLog(@"Error %@", error);
        }
    });
[manager fetchDataFromRequester:requester];
// Delegate
ACSRequestManager *manager = [ACSRequestManager manager];
ACSURLHTTPRequester *requester = ACSCreateGETRequester([NSURL URLWithString:@"http://example.com/resources.json"], nil, self);
[manager fetchDataFromRequester:requester];

- (void)request:(ACSHTTPRequest *)requester didFailToRequestForDataWithError:(NSError *)error {
    NSLog(@"Error %@", error);
}

- (void)request:(ACSHTTPRequest *)requester didFailToProcessForDataWithError:(NSError *)error {
    NSLog(@"Process Error %@", error);
}

- (void)request:(ACSHTTPRequest *)requester didReceiveData:(id)data {
    NSLog(@"responseObject %@", data);
}

GET Download Request

// Block
ACSRequestManager *manager = [ACSRequestManager manager];
ACSFileDownloader *requester = ACSCreateDownloader([NSURL URLWithString:@"http://example.com/resources.json"],
                                                   ^(ACSRequestProgress progress, NSString *filePath, NSError *error) {
                                                       if (error) {
                                                           NSLog(@"Error %@", error);
                                                       }
                                                       else {
                                                           if (!filePath) {
                                                               NSLog(@"responseObject %@", filePath);
                                                           }
                                                           else {
                                                               NSLog(@"Progress %f", progress.progressValue);
                                                           }
                                                       }
                                                   });
[manager fetchDataFromRequester:requester];
//Delegate
......

POST URL-Form-Encoded Request

// Block
ACSRequestManager *manager = [ACSRequestManager manager];
ACSURLHTTPRequester *requester = ACSCreatePOSTRequester([NSURL URLWithString:@"http://example.com/resources.json"], nil, ^(id result, NSError *error) {
        if (result) {
            NSLog(@"responseObject %@", result);
        }
        else {
            NSLog(@"Error %@", error);
        }
    });
[manager fetchDataFromRequester:requester];
// Delegate
ACSRequestManager *manager = [ACSRequestManager manager];
ACSURLHTTPRequester *requester = ACSCreatePOSTRequester([NSURL URLWithString:@"http://example.com/resources.json"], nil, self);
[manager fetchDataFromRequester:requester];

- (void)request:(ACSHTTPRequest *)requester didFailToRequestForDataWithError:(NSError *)error {
    NSLog(@"Error %@", error);
}

- (void)request:(ACSHTTPRequest *)requester didFailToProcessForDataWithError:(NSError *)error {
    NSLog(@"Process Error %@", error);
}

- (void)request:(ACSHTTPRequest *)requester didReceiveData:(id)data {
    NSLog(@"responseObject %@", data);
}

POST Multi-Part Request

// Block
ACSRequestManager *manager = [ACSRequestManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
UIImage *image = [UIImage imageNamed:@"imageName"];
NSDictionary *fileInfo = @{@"image": image};
//fileInfo = @{@"image": @"file://path/to/image.png"};
//fileInfo = @{@"image": [NSURL URLWithString:@"file://path/to/image.png"]};
//fileInfo = @{@"image": [NSData dataWithContentsOfFile:@"file://path/to/image.png"]};
ACSFileUploader *requester = ACSCreateUploader([NSURL URLWithString:@"http://example.com/resources.json"],
                                                fileInfo,
                                                ^(ACSRequestProgress progress, id result, NSError *error) {
                                                    if (error) {
                                                       NSLog(@"Error %@", error);
                                                    }
                                                    else {
                                                        if (result) {
                                                            NSLog(@"responseObject %@", result);
                                                        }
                                                        else {
                                                            NSLog(@"Progress %f", progress.progressValue);
                                                        }
                                                    }
                                                });
requester.parameters = parameters;
[manager fetchDataFromRequester:requester];
// Delegate
ACSRequestManager *manager = [ACSRequestManager manager];
NSDictionary *parameters = @{@"foo": @"bar"};
UIImage *image = [UIImage imageNamed:@"imageName"];
NSDictionary *fileInfo = @{@"image": image};
ACSFileUploader *requester = ACSCreateUploader([NSURL URLWithString:@"http://example.com/resources.json"],
                                                fileInfo,
                                                self);
requester.parameters = parameters;
[manager fetchDataFromRequester:requester];
......
- (void)request:(ACSHTTPRequest *)requester didFileProgressing:(ACSRequestProgress)progress {
    NSLog(@"Progress %f", progress.progressValue);
}

License

ACSNetworking is released under the MIT license. See LICENSE for details.