AFNetWorking 数据请求、数据上传、网络监控

AFNetWorking请求完成数据后可以直接进行更新,它里面已经封装好自动回到主线程更新UI


使用AFNetWorking进行数据请求,以下为几种返回数据格式设定:

    // 声明(默认):服务器返回的 json 数据,因为 json 格式比较规范,他会帮你解析成字典或数组
    session. responseSerializer = [ AFJSONResponseSerializer serializer ];
   
   
// 声明:服务器返回的是 XML 数据,我们自己进行解析
    session.
responseSerializer = [ AFXMLParserResponseSerializer serializer ];
   
   
// 声明:不要对服务器返回的数据进行解析,直接返回 data 就行(如果是文件下载,使用这个(图片等))
    session.responseSerializer = [AFHTTPResponseSerializer serializer];

AFNetWorking网络请求数据步骤
1、创建管理者
2、封装请求参数
3、获得url字符串并发送get或post请求

若遇到解析不成功,可打印出error查看错误信息,可通过下方方式解决(AFNetWorking新版本)



二、数据上传:(使用的类: AFHTTPRequestOperationManager)使用Post请求  
    AFHTTPRequestOperationManager *manager = [ AFHTTPRequestOperationManager manager ];
   
   
NSString *urlStr = @"" ;
   
   
NSMutableDictionary *dic = [ NSMutableDictionary dictionary ];
   
     [manager
POST :urlStr parameters :dic constructingBodyWithBlock :^( id < AFMultipartFormData _Nonnull formData) {
        
        
/*
          fileURL :
需要上传的文件的 URL 路径
          name
服务器那边接收文件所用的参数名
          fileName
(告诉服务器)所上传文件的文件名
          mimeType
所上传文件的类型
          */

        
//         [formData appendPartWithFileURL:<#(nonnull NSURL *)#> name:@"file" fileName:<#(nonnull NSString *)#> mimeType:<#(nonnull NSString *)#> error:nil]
        
        
/*
          fileURL :
需要上传的文件的具体数据
          name
服务器那边接收文件所用的参数名
          fileName
(告诉服务器)所上传文件的文件名
          mimeType
所上传文件的类型
          */

        
//         [formData appendPartWithFileData:<#(nonnull NSData *)#> name:<#(nonnull NSString *)#> fileName:<#(nonnull NSString *)#> mimeType:<#(nonnull NSString *)#>]
        
        
     }
success :^( AFHTTPRequestOperation * _Nonnull operation, id   _Nonnull responseObject) {
        
NSLog ( @" 上传成功 " );
        
     }
failure :^( AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
        
         NSLog(@"上传失败 ");
     }];
}
三、网络状态监控(使用的类: AFNetworkReachabilityManager

    AFNetworkReachabilityManager *manager = [ AFNetworkReachabilityManager sharedManager ];
   
    [manager
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 ;
        }
       
       
       
    }];
   
    [manager startMonitoring];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sailip

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

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

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

打赏作者

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

抵扣说明:

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

余额充值