IOS AFNetworking的使用与YYModel解析JSON数据

Posted 全栈攻城狮之道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IOS AFNetworking的使用与YYModel解析JSON数据相关的知识,希望对你有一定的参考价值。

ios AFNetworking的使用与YYModel解析JSON数据(一)

订阅号好久没有推送文章了,今天抽空写篇文章,如果大家想get什么技术可以在本篇文章底部留言,谢谢大家的支持!


在app开发方面,无论是android还是ios的应用开发都离不开api的调用与json数据的解析。就目前而言,ios系统下的应用开发,使用AFNetworking实现网络请求功能依然是主流。json数据的解析框架很多,我认为YYModel是最方便好用的,所以我选择使用YYModel来解析json数据,当然,这只是个人的看法。


本文重点在于介绍AFNetworking与YYModel如何使用,在有需要的地方我会插入gif图,以便大家能更好的理解。


1
使用cocoapods导入AFNetworking与YYModel

打开xcode新建一个ios项目,项目名为AFNetworkingAndYYModel,并指定该项目的Deployment Target为8.0版本。



关闭xcode,打开终端,进入到刚才新建的项目的根目录下,使用vim新建一个名为Podfile的文件,用于导入第三方框架。Podfile文件的内容如下:

IOS AFNetworking的使用与YYModel解析JSON数据(一)

以下内容可复制:

platform:ios,'8.0'

use_frameworks!

target 'AFNetworkingAndYYModel'

pod 'AFNetworking','~>3.1.0'

pod 'YYModel','~>1.0.4'



编辑完成Podfile文件后,使用pod install安装需要导入的框架:

IOS AFNetworking的使用与YYModel解析JSON数据(一)

安装完成后打开该项目,项目目录如下:

IOS AFNetworking的使用与YYModel解析JSON数据(一)


2
使用AFNetworking监听网络状态改变

关于项目中如何配置网络访问权限以及import三方库没有提示的解决方法可以看我的上一篇文章:“ios开发 使用cocoapods导入第三方库”,在此就不复述了。


在项目根目录下新建一个文件夹,名为HttpRequest,在HttpRequest目录下新建一个名为NetworkListenerManager的oc文件,NetworkListenerManager.h文件内容如下:

IOS AFNetworking的使用与YYModel解析JSON数据(一)

IOS AFNetworking的使用与YYModel解析JSON数据(一)

NetworkListenerManager.h中定义了一个网络状态枚举类型NetworkStatusEnum和一个网络状态改变监听的委托(相当于java中的接口)NetworkListenterDelegate,在需要监听网络状态改变的ViewController实现该委托的方法,当网络状态发生改变时会调用该委托的相应方法。


NetworkListenerManager.m实现代码:

实现单例

IOS AFNetworking的使用与YYModel解析JSON数据(一)

开启网络状态改变监听方法的实现,第一个参数:网络状态监听启动完成回调代码块,第二个参数:网路状态监听改变通知的委托。

IOS AFNetworking的使用与YYModel解析JSON数据(一)

提供改变网络状态监听委托的方法

IOS AFNetworking的使用与YYModel解析JSON数据(一)

使用方法:

第一步:在AppDelegate中调用NetworkListenerManager单例类的startNetworkListener方法来启动网络状态监听;

IOS AFNetworking的使用与YYModel解析JSON数据(一)

第二步:新建一个测试ViewController类,就命名为ViewController,在该ViewController中实现NetworkListenerManager提供的NetworkListenterDelegate委托。

IOS AFNetworking的使用与YYModel解析JSON数据(一)

编译运行该项目,运行结果log打印如下:

IOS AFNetworking的使用与YYModel解析JSON数据(一)


3
封装post和get请求以及文件上传

在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参数传递的是文件上传过程中的上传进度。

IOS AFNetworking的使用与YYModel解析JSON数据(一)

定义请求超时时间以及cookies持久化保存的key:

IOS AFNetworking的使用与YYModel解析JSON数据(一)

定义post,get,文件上传方法:

IOS AFNetworking的使用与YYModel解析JSON数据(一)


HttpsNetworkManager.m中实现get方法和post方法以及文件上传方法

IOS AFNetworking的使用与YYModel解析JSON数据(一)


get方法的实现:

IOS AFNetworking的使用与YYModel解析JSON数据(一)

IOS AFNetworking的使用与YYModel解析JSON数据(一)


post方法的实现:

IOS AFNetworking的使用与YYModel解析JSON数据(一)

IOS AFNetworking的使用与YYModel解析JSON数据(一)


文件上传方法的实现:

IOS AFNetworking的使用与YYModel解析JSON数据(一)

IOS AFNetworking的使用与YYModel解析JSON数据(一)

IOS AFNetworking的使用与YYModel解析JSON数据(一)

由于文章篇幅问题,如何使用封装类HttpsNetworkManager执行post,get请求和YYModel的使用将留到下篇文章继续分享。如果对本编文章内容有疑问可在下方留言。由于作者能力有限,如发现有说得不对的地方望您指正^_^!


如需获取项目源码请在文章下方留言您的邮箱!


135编辑器



以上是关于IOS AFNetworking的使用与YYModel解析JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

IOS AFNetworking的使用与YYModel解析JSON数据

iOS网络操作与AFNetworking

iOS开发之旅AFNetworking与SDWebImage下载图片

iOS网络访问之使用AFNetworking

AFNetworking 2.0 iOS 7 复制与 AFHTTPRequestOperation.h 文件中的区域警告

ios json 解析与 afnetworking