AFNetworking从百度云存储下载(判断网络状态)

用AFNetworking配合百度云下载数据


plist文件本质是xml,我用着很习惯,以下是从百度云下载plist文件的流程。实际应用,远远不止如此。

首先,在.pch中 #import “AFNetworking.h"


.h文件中需要写入一个数组用以保存:

@property (strong,nonatomic)NSArray *dataArray;


.m文件中:

- (void)viewDidLoad

{

    [super viewDidLoad];

    

    //检测是否有.plist这个文件,如果没有则用AFNetworking下载

    NSString *Path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

    NSString *plistPath = [Path stringByAppendingPathComponent:@"part1Data.plist"];

    NSFileManager *filemanager = [NSFileManager defaultManager];

    

    if([filemanager fileExistsAtPath:plistPath])

    {

        NSLog(@"plist已存在");

        dataArray = [[NSArray alloc]initWithContentsOfFile:plistPath];

        NSLog(@"Plist为%@",dataArray);

    }

    else

    {

        //AFNetworking进行下载:

        NSString *listUrl = @"http://bcs.duapp.com/XX/XXXX/part1Data.plist";

           //这里字符串就是公开-复制链接 的链接 当然,在百度云上要设置为“公开”


        NSURL *url = [NSURL URLWithString:listUrl];

        NSURLRequest *request = [NSURLRequest requestWithURL:url];

        AFHTTPRequestOperation *AFHoperation = [[AFHTTPRequestOperation alloc]initWithRequest:request];

        AFHoperation.outputStream = [[NSOutputStream alloc]initToFileAtPath:plistPath append:NO];

        [AFHoperation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)

         {

             

             dataArray = [[NSArray alloc]initWithContentsOfFile:plistPath];

             NSLog(@"Plist为%@",dataArray);

         }

                                            failure:^(AFHTTPRequestOperation *operation, NSError *error)

         {

             NSLog(@"its make an error");

         }

         ];

        [AFHoperation start];

    }


}

      经测试,这个方法是可以的,拓展的东西呢,就是把百度云当存储服务器,数据都从百度云下载。


          显然,在下载之前最好能够判断网络是否连接,导入SystemConfiguration.framework,和Reachability.h/.m,这是苹果官方给的头文件。判断网络的例子:
         // 检查网络,如果未连接则提示用户开启链接   或进行下载

    Reachability *reachability = [Reachability reachabilityWithHostname:@"www.baidu.com"];

                                     //  测试服务器状态  
          switch ([reachability  currentReachabilityStatus ]) {

        case NotReachable:

            NSLog(@"暂无网络!");

            break;

        case ReachableViaWWAN:

            NSLog(@"蜂窝网络开启!");

            break;

        case ReachableViaWiFi:

            NSLog(@"WiFi开启!");

            break;

    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limaning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值