码迷,mamicode.com
首页 > Web开发 > 详细

AFN 上传文件的方法,AFN 监测网络状态,Reachability 监测网络状态

时间:2015-09-15 10:37:57      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:

AFN 上传文件的方法

{

    // 1. 创建管理者

    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

    

    // 2. 发送请求

    [mgr POST:@"http://localhost/upload/upload.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

    

        // formData :设置上传文件所需要的参数,两种上传方法:

        // <1> 通过本地文件的 url 上传

        {

            NSString *fromFile = @"/Users/likaining/Desktop/meinv.jpg";

            

            NSURL *url = [NSURL URLWithString:@"file:///Users/likaining/Desktop/meinv.jpg"];

            // url :需要上传文件的文件路径

            // name :服务器接收的文件名.

            // fileName: 文件在服务器中保存的名字

            // mimeType : 文件类型

            [formData appendPartWithFileURL:url name:@"userfile" fileName:@"meinv" mimeType:@"image/jpg" error:NULL];

        }

        // <2> 通过文件的 二进制数据 上传

        {

            NSData *data = [NSData dataWithContentsOfFile:zipFile];

            

            [formData appendPartWithFileData:data name:@"userfile" fileName:@"meinv.zip" mimeType:@"gzip"];

        }

        

        } success:^(AFHTTPRequestOperation *operation, id responseObject) {

            // 上传成功之后的回调

            NSLog(@"%@",responseObject);

        

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

            //  上传失败之后的回调

            NSLog(@"失败");

    }];

 

}

/*-------------------------------------- 监测网络状态 -----------------------------------------*/

 1.AFN 监测网络状态  2.了解 Reachability 监测网络状态

{

    1. AFN 监测网络状态

    {

        // 创建 网络状态管理者

        AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

        

        // 监测网络状态的改变

        [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {

            // 当网络状态发生改变的时候调用这个block

            switch (status) {

                case AFNetworkReachabilityStatusReachableViaWiFi:

                    NSLog(@"WIFI网络");

                    break;

                    

                case AFNetworkReachabilityStatusReachableViaWWAN:

                    NSLog(@"蜂窝网络");

                    break;

                    

                case AFNetworkReachabilityStatusNotReachable:

                    NSLog(@"没有网络");

                    break;

                    

                case AFNetworkReachabilityStatusUnknown:

                    NSLog(@"未知网络");

                    break;

                default:

                    break;

            }

        }];

        // 开始监控

        [mgr startMonitoring];

    }

    2.Reachability 监测网络状态

    {

        // 注册通知观察者,网络状态改变时,接收通知!

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(InternetStatusChanged) name:kReachabilityChangedNotification object:nil];

 

        // 控制器销毁时,移除通知观察者.

        -(void)dealloc

        {

            [[NSNotificationCenter defaultCenter] removeObserver:self];

        }

        

        // 根据当前网络状态,做出不同的响应.

        - (void)InternetStatusChanged

        {

            NSLog(@"网络状态改变了");

            

            if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus == ReachableViaWiFi) {

                NSLog(@"Wifi 网络");

            }

            if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus == ReachableViaWWAN) {

                NSLog(@"蜂窝移动网络");

            }

            if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus == NotReachable)

            {

                NSLog(@"没有网络");

            }

        }

        // 创建 Reachability 对象,开始监测网络状态的改变

        - (void)MonitorInternetStatus

        {

            Reachability *CZReachability = [Reachability reachabilityForInternetConnection];

            

            [CZReachability startNotifier];

            

            self.reachability = CZReachability;

        }

 

        - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

        {

            [self MonitorInternetStatus];

        }

    }

}

AFN 上传文件的方法,AFN 监测网络状态,Reachability 监测网络状态

标签:

原文地址:http://www.cnblogs.com/xhc1263478959/p/4809299.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!