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

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];

        }

    }

}

posted @ 2015-09-15 09:36  熊虎成  阅读(271)  评论(0编辑  收藏  举报