网络解析封装类

来源:互联网 发布:ember.js 官网 编辑:程序博客网 时间:2024/06/08 04:55

    // 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 *str = [NSString stringWithFormat:@"%@.xml",ID];

            NSString *strPath = [path stringByAppendingPathComponent:str];

            data = [NSData dataWithContentsOfFile:strPath];

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

            block(data);

        }

        else{

            // 有网时得到请求数据 并更新本地数据

            block(data);

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

            NSString *str = [NSString stringWithFormat:@"%@.xml",ID];

            NSString *strPath = [path stringByAppendingPathComponent:str];

            [data writeToFile:strPath atomically:YES];

        }

    }];

0 0
原创粉丝点击