ACSNetworking 1.3.2

ACSNetworking 1.3.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2016年2月

Stoney维护。



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

如何导入项目中?

直接导入

下载 ACSNetworking 然后导入到您的 iOS 或 OS X 项目中,注意您还需要下载AFNetworking

请求者

  • ACSURLHTTPRequester
  • ACSFileDownloader
  • ACSFileUploader

缓存

  • ACSCache

配置

  • ACSNetworkConfiguration

可达性

  • ACSNetworkReachabilityManager

请求管理器

  • ACSRequestManager

用法

配置

- (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 请求

// 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 下载请求

// 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 请求

// 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 请求

// 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);
}

许可证

ACSNetworking 在 MIT 许可下发布。有关详细信息,请参阅 LICENSE。