AFNetworking的网络请求(POST GET XML JSON以及其他类型的返回数据)和网络转态监听

AFNetworking   AFHTTPRequestOperationManager 类发送 的GET 请求
- ( void )get
{
 
// AFHTTPRequestOperationManager 内部包装了 NSURLConnection
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];

   
NSDictionary *params = @{
                            
@"username" : @"520it" ,
                            
@"pwd" : @"520it"
                             };

    [mgr GET:
@"http://120.25.226.186:32812/login" parameters:params
     success:^(AFHTTPRequestOperation *operation,
id responseObject) {
         NSLog(
@" 请求成功 ---%@" , responseObject);
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(
@" 请求失败 ---%@" , error);
    }];
}

AFNetworking    AFHTTPSessionManager 类发送 的GET 请求
- ( void )get2
{
   
// AFHTTPSessionManager 内部包装了 NSURLSession
    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];

   
   
NSDictionary *params = @{
                            
@"username" : @"520it" ,
                            
@"pwd" : @"520it"
                             };
   
    [mgr GET:
@"http://120.25.226.186:32812/login" parameters:params success:^(NSURLSessionDataTask *task, id responseObject) {
        NSLog(
@" 请求成功 ---%@" , responseObject);
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(
@" 请求失败 ---%@" , error);
    }];
}


AFNetworking    AFHTTPRequestOperationManager 类发送 的POST 请求
- ( void )post
{
   
// AFHTTPRequestOperationManager 内部包装了 NSURLConnection
    AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager];
   
   
NSDictionary *params = @{
                            
@"username" : @"520it" ,
                            
@"pwd" : @"520it"
                             };
   
    [mgr POST:
@"http://120.25.226.186:32812/login" parameters:params
     success:^(AFHTTPRequestOperation *operation,
id responseObject) {
         NSLog(
@" 请求成功 ---%@" , responseObject);
     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
         NSLog(
@" 请求失败 ---%@" , error);
     }];
}


//下载
- ( void )download
{
    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
   
    [mgr downloadTaskWithRequest:<#(NSURLRequest *)#> progress:<#(NSProgress *__autoreleasing *)#> destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
       
return
    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
       
    }];
}


XML形式数据的网络请求
- ( void )xml
{
    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
   
   
// responseSerializer 用来解析服务器返回的数据
   
   
// 告诉 AFN ,以 XML 形式解析服务器返回的数据
    mgr.responseSerializer = [AFXMLParserResponseSerializer serializer];
   
   
NSDictionary *params = @{
                            
@"username" : @"520it" ,
                            
@"pwd" : @"520it" ,
                            
@"type" : @"XML"
                             };
   
    [mgr GET:
@"http://120.25.226.186:32812/login" parameters:params success:^(NSURLSessionDataTask *task, NSXMLParser *parser) {
       
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(
@" 请求失败 ---%@" , error);
    }];
}


 // 直接使用服务器本来返回的数据,不做任何解析
- ( void )touchesBegan:( NSSet *)touches withEvent:( UIEvent *)event
{
    AFHTTPSessionManager *mgr = [AFHTTPSessionManager manager];
   
// 直接使用 服务器本来返回的数据 ,不做任何解析
    mgr.responseSerializer = [AFHTTPResponseSerializer serializer];
   
//    [AFJSONResponseSerializer serializer]; // 解析服务器返回的 JSON 数据
//    [AFXMLParserResponseSerializer serializer]; // 解析服务器返回的 XML 数据

   
    [mgr GET:
@"http://120.25.226.186:32812/resources/images/minion_02.png" parameters: nil success:^(NSURLSessionDataTask *task, NSData *responseObject) {
        NSLog(
@" 请求成功 ---%zd" , responseObject.length);
    } failure:^(NSURLSessionDataTask *task, NSError *error) {
        NSLog(
@" 请求失败 ---%@" , error);
    }];
}


第三方类库 AFNetworking的网络状态监听
- ( void )afnMonitoring
{
   
// 开始网络监控
   
AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager];

    [mgr setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        NSLog(
@"----- 当前的网络状态 ---%zd" , status);
    }];
   
    [mgr startMonitoring];
   
   
// 拿到当前网络状态
//    mgr.networkReachabilityStatus;
}



如果没有使用AFN,我们使用的是苹果自带的NSURLSession 或者 NSURLConnection进行的网络请求,监听网络状态使用下面的方法,通过观察者的方式监听,记得移除观察者。
- ( void )appleMonitoring
{
   
// 监听通知
    [[
NSNotificationCenter defaultCenter ] addObserver : self selector : @selector (getNetworkStatus) name : kReachabilityChangedNotification object : nil ];
   
   
// 开始监控网络
   
self . reachability = [ Reachability reachabilityForInternetConnection ];
    [
self . reachability startNotifier ];
}

- (
void )getNetworkStatus
{
   
if ([ Reachability reachabilityForLocalWiFi ]. currentReachabilityStatus != NotReachable ) {
       
NSLog ( @" wifi" );
    }
else if ([ Reachability reachabilityForInternetConnection ]. currentReachabilityStatus != NotReachable ) {
       
NSLog ( @" 是手机自带网络 " );
    }
else {
       
NSLog ( @" 网络有问题 " );
    }
}

- (
void )dealloc
{
   
//    当控制器消亡过后我们需要移除观察者对象
    [[
NSNotificationCenter defaultCenter ] removeObserver : self ];

   
//    停止网络转态监听
    [
self . reachability stopNotifier ];
   
self . reachability = nil ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值