AFNetworking 3.0笔记

AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持。如果你的项目以前使用过这些API,建议您立即升级到基于 NSURLSession 的API的AFNetworking的版本

弃用的类

下面的类已从AFNetworking 3.0中废弃:

     AFURLConnectionOperation

     AFHTTPRequestOperation

     AFHTTPRequestOperationManager

修改的类下面的类包含基于NSURLConnection的API的内部实现。他们已经被使用NSURLSession重构:

    UIImageView+AFNetworking

    UIWebView+AFNetworking

    UIButton+AFNetworking

代码的迁移:关于AFHTTPRequestOperationManager的废弃,将前去使用AFHTTPSessionManager,之中的属性并没有多大的变化

                     关于AFHTTPRequestOperation的迁移废弃,同样使用AFHTTPSessionManager即可

1. AFHTTPSessionManager 继承 AFURLSessionManager[内部封装的是 NSURLSession,网络请求管理类,用来负责发送网络请求,是使用做多的一个类.]

    AFHTTPSessionManager所需属性

    requestSerializer:请求参数序列化类型 [AFHTTPSessionManager manager].requestSerializer = [AFJSONRequestSerializer serializer];

    responseSerializer:响应结果序列化类型 [AFHTTPSessionManager manager].responseSerializer = [AFXMLParserResponseSerializer serializer];//响应返回的是XML解析 

    AFURLSessionManager所需属性

    securityPolicy:用于验证HTTPS请求的证书  [AFHTTPSessionManager manager].securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];


2. AFN根据 response.MIMEType 来判断服务器返回数据的类型. 如果类型不匹配,但是又是JSON数据,解决方案:

    1.改变解析器类型为:万能解析器 ---> 手动解析JSON

        manager.responseSerializer = [AFHTTPResponseSerializer serializer];

     2.改变判断条件的类型,以使类型匹配,acceptableContentTypes默认情况下无 text/plain 类型

        manager.responseSerializer.acceptableContentTypes =[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/plain",@"text/html",@"text/xml", nil];

     注: 如果没有使用第三方框架(CocoaPods)来管理第三方框架,可以直接修改第三方框架的源代码.

     一般在开发中,不要随意修改第三方源码.


未完待续......



比较好的解析参考:AFNetworking的常用方法较详

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值