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

原创 2015年11月20日 17:54:54
AFNetWorking请求完成数据后可以直接进行更新,它里面已经封装好自动回到主线程更新UI


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

   //声明(默认):服务器返回的json数据,因为json格式比较规范,他会帮你解析成字典或数组
    session.responseSerializer= [AFJSONResponseSerializerserializer];
   
   
// 声明:服务器返回的是XML数据,我们自己进行解析
    session.
responseSerializer= [AFXMLParserResponseSerializerserializer];
   
   
//声明:不要对服务器返回的数据进行解析,直接返回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];

版权声明:本文为博主原创文章,未经博主允许不得转载,有问题可联系博主Email: liuyongjiesail@icloud.com

iOS 开发 AFNetworking实现网络请求,上传和下载

AFNetworking数据格式 请求的数据格式响应数据格式常见问题 1.AFN默认不支持接收 text/html 文件类型的;如果你非要接收这个文件,就需要自己添加 2.AFN默认把数据党...
  • kuangdacaikuang
  • kuangdacaikuang
  • 2016年11月29日 19:29
  • 1050

AFNetWorking框架使用的“两个大坑”——修改请求方式和响应方式

引子AFNetWorking是目前国内开发网络应用使用最多的第三方框架之一(ASI框架也具有其自身优势),对 NSURLConnection 和NSURLSession 做了封装(后期维护中逐渐剔除了...
  • qq_34101611
  • qq_34101611
  • 2016年04月22日 01:07
  • 1167

查看进行AFNetworking请求时的头部信息

我们在进行网络请求的时候,服务器是如何知道我们的手机类型和信息呢?这些信息是通过请求头部发送的。关于如何导入AFNetworking库,请查看我的另一篇博客《》...
  • CHENYUFENG1991
  • CHENYUFENG1991
  • 2015年09月16日 21:36
  • 6181

iOS开发零基础教程之AFNetWorking POST 队列请求

我们在开发过程中,经常会遇到有些页面不止一个网络请求,有时候需要两个三个甚至更多,这个时候我们就需要队列请求,下边是GET请求的多个请求放在队列里边: NSURL *url = [NSURL URLW...
  • CrazyZhang1990
  • CrazyZhang1990
  • 2015年06月09日 18:57
  • 16902

AFNetworking 批量上传统一返回图片的3种方法

AFNetworking 在去年年底升级到了 3.0。这个版本更新想必有很多好处,然而让我吃惊的是,它并没有 batch request 接口。之前的 1.x 版本、2.x 版本都实现了这个很常见的需...
  • lovenjoe
  • lovenjoe
  • 2016年08月08日 18:07
  • 1246

iOS一行代码搞定网络请求(AFNetWorking结合ReactiveCocoa)(3)

1、几个要点 单例 + (AFHTTPRequestOperationManager *)sharedHTTPOperationManager { static AFHTTPRequestOpe...
  • shenhualxt
  • shenhualxt
  • 2015年08月29日 14:29
  • 3359

AFNetworking学习——如何做数据请求

首先,写这个,主要是便于整理自己学习的知识,记录一下,方便以后忘记了的时候可以回头看看。 前提:已创建好一个oc项目,并且已经将AFNetworking库文件导入到项目中了,至于不知道这一步或者忘记怎...
  • u011300635
  • u011300635
  • 2016年07月20日 11:28
  • 387

AFNetworking进行POST请求中 发送json数据有些特别

AFNetworking进行POST请求中 发送json数据有些特别  AFNetworking 版本为 2.0.2 POST 发送数据有两种形式: 1、发送纯文本的内容 2、...
  • bible521125
  • bible521125
  • 2015年05月27日 11:57
  • 1991

iOS开发小结 - 通过PUT请求上传数据

一般服务器上传数据一般都是用POST请求,这样通过AFNetworking的POST请求稳稳的,但是有一天遇到一个问题,服务器上传数据用的是PUT请求,发现用AFNetworking并不是那么好用,今...
  • wang631106979
  • wang631106979
  • 2016年05月17日 23:39
  • 6811

iOS 网络解析 -- 简单的JSON解析(包含AFNetworking、MJExtension的简单实用)

第一次写博客,写的不好或者有错的地方希望大家可以说出来,一起学习
  • u012121216
  • u012121216
  • 2015年10月11日 20:23
  • 1219
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AFNetWorking 数据请求、数据上传、网络监控
举报原因:
原因补充:

(最多只允许输入30个字)