iOS AFNetworking 的简单使用

为什么要用AFNetworking?

  1.  带block形式, 内部是任务队列进行下载 。
  2.  还可以检测网络状态。
  • GET请求
- (void)getAFNetworking {
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    NSString *url = @"http://apis.juhe.cn/ip/ip2addr?ip=www.juhe.cn";

    [manager GET:url parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
           
         }
         success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

             NSLog(@"请求成功:%@",responseObject);

         }
         failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull   error) {

             NSLog(@"请求失败:%@",error);

         }];
}
  • POST请求
- (void)postAFNetworking {
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    manager.requestSerializer = [AFJSONRequestSerializer serializer];   // 请求JSON格式
    manager.responseSerializer = [AFJSONResponseSerializer serializer]; // 响应JSON格式

    [manager.requestSerializer setValue:@"application/json;UTF-8" forHTTPHeaderField:@"Content-Type"];

    NSString *url = @"http://xxx/app/user/login";
    NSDictionary *parameters = @{@"mobile":@"18672788083",
                                 @"password": @"password",
                                 @"DToken": @"537e8678186"};

    [manager POST:url parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {

    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"请求成功:%@",responseObject);

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        NSLog(@"请求失败:%@",error);
    }];
}
  •  检测当前网络状态
    - (void)AFNetworkStatus{
    
        //1.创建网络监测者
        AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
    
        /*枚举里面四个状态  分别对应 未知 无网络 数据 WiFi
         typedef NS_ENUM(NSInteger, AFNetworkReachabilityStatus) {
             AFNetworkReachabilityStatusUnknown          = -1,      未知
             AFNetworkReachabilityStatusNotReachable     = 0,       无网络
             AFNetworkReachabilityStatusReachableViaWWAN = 1,       蜂窝数据网络
             AFNetworkReachabilityStatusReachableViaWiFi = 2,       WiFi
         };
         */
    
        [manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
            switch (status) {
                case AFNetworkReachabilityStatusUnknown:
                    NSLog(@"未知网络状态");
                    break;
                case AFNetworkReachabilityStatusNotReachable:
                    NSLog(@"无网络");
                    break;
                case AFNetworkReachabilityStatusReachableViaWWAN:
                    NSLog(@"蜂窝数据网");
                    break;
                case AFNetworkReachabilityStatusReachableViaWiFi:
                    NSLog(@"WiFi网络");
                    break;
                default:
                    break;
            }
        }] ;
    }
    

     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值