IOS AFNetworking的使用与YYModel解析JSON数据
Posted 全栈攻城狮之道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS AFNetworking的使用与YYModel解析JSON数据相关的知识,希望对你有一定的参考价值。
订阅号好久没有推送文章了,今天抽空写篇文章,如果大家想get什么技术可以在本篇文章底部留言,谢谢大家的支持!
在app开发方面,无论是android还是ios的应用开发都离不开api的调用与json数据的解析。就目前而言,ios系统下的应用开发,使用AFNetworking实现网络请求功能依然是主流。json数据的解析框架很多,我认为YYModel是最方便好用的,所以我选择使用YYModel来解析json数据,当然,这只是个人的看法。
本文重点在于介绍AFNetworking与YYModel如何使用,在有需要的地方我会插入gif图,以便大家能更好的理解。
打开xcode新建一个ios项目,项目名为AFNetworkingAndYYModel,并指定该项目的Deployment Target为8.0版本。
关闭xcode,打开终端,进入到刚才新建的项目的根目录下,使用vim新建一个名为Podfile的文件,用于导入第三方框架。Podfile文件的内容如下:
以下内容可复制:
platform:ios,'8.0'
use_frameworks!
target 'AFNetworkingAndYYModel'
pod 'AFNetworking','~>3.1.0'
pod 'YYModel','~>1.0.4'
编辑完成Podfile文件后,使用pod install安装需要导入的框架:
安装完成后打开该项目,项目目录如下:
关于项目中如何配置网络访问权限以及import三方库没有提示的解决方法可以看我的上一篇文章:“ios开发 使用cocoapods导入第三方库”,在此就不复述了。
在项目根目录下新建一个文件夹,名为HttpRequest,在HttpRequest目录下新建一个名为NetworkListenerManager的oc文件,NetworkListenerManager.h文件内容如下:
NetworkListenerManager.h中定义了一个网络状态枚举类型NetworkStatusEnum和一个网络状态改变监听的委托(相当于java中的接口)NetworkListenterDelegate,在需要监听网络状态改变的ViewController实现该委托的方法,当网络状态发生改变时会调用该委托的相应方法。
NetworkListenerManager.m实现代码:
实现单例
开启网络状态改变监听方法的实现,第一个参数:网络状态监听启动完成回调代码块,第二个参数:网路状态监听改变通知的委托。
提供改变网络状态监听委托的方法
使用方法:
第一步:在AppDelegate中调用NetworkListenerManager单例类的startNetworkListener方法来启动网络状态监听;
第二步:新建一个测试ViewController类,就命名为ViewController,在该ViewController中实现NetworkListenerManager提供的NetworkListenterDelegate委托。
编译运行该项目,运行结果log打印如下:
在HttpRequest目录下新建一个名为HttpsNetworkManager的oc文件,包含HttpsNetworkManager.h头文件和HttpsNetworkManager.m实现类文件。
HttpsNetworkManager.h定义三个回调代码块:
1.访问成功回调代码块HttpRequestSuccess,接受一个字符串类型的参数jsonResult,jsonResult为请求执行成功返回的json字符串数据,一个BOOL类型的参数success,success为真代表请求执行成功。
2.请求失败回调代码块HttpRequestError,接受一个NSError类型的参数,该参数保存请求失败的错误信息,如错误代码:500。NSError类是AFNetworking提供的。
3.文件上传进度监听回调代码块UploadProgress,其中progress参数传递的是文件上传过程中的上传进度。
定义请求超时时间以及cookies持久化保存的key:
定义post,get,文件上传方法:
HttpsNetworkManager.m中实现get方法和post方法以及文件上传方法
get方法的实现:
post方法的实现:
文件上传方法的实现:
由于文章篇幅问题,如何使用封装类HttpsNetworkManager执行post,get请求和YYModel的使用将留到下篇文章继续分享。如果对本编文章内容有疑问可在下方留言。由于作者能力有限,如发现有说得不对的地方望您指正^_^!
如需获取项目源码请在文章下方留言您的邮箱!
以上是关于IOS AFNetworking的使用与YYModel解析JSON数据的主要内容,如果未能解决你的问题,请参考以下文章
IOS AFNetworking的使用与YYModel解析JSON数据
iOS开发之旅AFNetworking与SDWebImage下载图片
AFNetworking 2.0 iOS 7 复制与 AFHTTPRequestOperation.h 文件中的区域警告