您的位置:首页 > 理论基础 > 计算机网络

网络数据解析及加载本地 缓存封装

2015-09-09 21:55 543 查看
#import <Foundation/Foundation.h>

@interface Person :
NSObject

//作用: 封装网络请求

+ (void)getDataWithURL:(NSString *)str comletion:(void(^)(NSData *data))block;

@end

+ (void)getDataWithURL:(NSString *)str comletion:(void(^)(NSData *data))block

{

    //1. 创建请求

    NSString *urlStr = [str
stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

    NSURL *url = [NSURL
URLWithString:urlStr];

    NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:url];

    request.HTTPMethod =
@"get";

    

    //2.发送请求到服务器(异步)

    [NSURLConnection
sendAsynchronousRequest:request queue:[NSOperationQueue
mainQueue]completionHandler:^(NSURLResponse *response,
NSData *data, NSError *connectionError) {

        //3.处理数据

        

        if (data ==
nil) {

            NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)lastObject];

            NSString *strPath = [path
stringByAppendingPathComponent:@"1.xml"];

            data = [NSData
dataWithContentsOfFile:strPath];

            NSLog(@"str:%@",data);

            block(data);

        }

        else{

            block(data);

            NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES)lastObject];

            NSString *strPath = [path
stringByAppendingPathComponent:@"1.xml"];

            [data writeToFile:strPath
atomically:YES];

        }   

    }];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  缓存 网络 数据