浅析AFNetworking处理GET和POST请求 --> GET、POST
2015-11-06 16:51
211 查看
AFHTTPClient处理GET和POST请求
在要经常调用某个请求时,可以封装,节省资源。
http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库。最新版本支持session,xctool单元测试。网络获取数据一直是手机软件的重中之重,如果处理的不好,会造成很差的用户体验。随着ASIHTTPRequest的停止更新,更换网络库是必然的事情,AFNetworking就是很好的替代品。而且都是轻量级,不要担心加入太多库会多软件性能有影响。
一、为什么用第三方网络库?
什么都用苹果原生的好,XML解析用苹果自带的委托,下载图片自己写,你会发现自己管理起来很复杂,很容易出错,而且性能不好。第三方网络库可以优化这些问题。
二、为什么要用AFNetworking?
AFNetworking 目前使用比较多得一个下载库,目前一直在维护更新,使用的是非常简单,不需要添加任何关联的库。
1、带block形式, 内部是任务队列进行下载 ,就是对operation的一个封装下载。
2、还对uikit 内部的类进行类别形式添加方法(异步下载图片)。
3、还可以检测网络状态。
ASI 以前使用比较多得一个下载开源库 现在已经不维护了,ASI 使用的时候要导入很多库 比较麻烦第一点。
三、AFNetWorking处理GET请求
要使用常规的AFN网络访问
1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
所有的网络请求,均有manager发起
2. 需要注意的是,默认提交请求的数据是二进制的,返回格式是JSON
1> 如果提交数据是JSON的,需要将请求格式设置为AFJSONRequestSerializer
2> 如果返回格式不是JSON的,
3. 请求格式
AFHTTPRequestSerializer 二进制格式
AFJSONRequestSerializer JSON
AFPropertyListRequestSerializer PList(是一种特殊的XML,解析起来相对容易)
4. 返回格式 (响应格式)
AFHTTPResponseSerializer 二进制格式
AFJSONResponseSerializer JSON
AFXMLParserResponseSerializer XML,只能返回XMLParser,还需要自己通过代理方法解析
AFXMLDocumentResponseSerializer (Mac OS X)
AFPropertyListResponseSerializer PList
AFImageResponseSerializer Image
AFCompoundResponseSerializer 组合
取消任务
[manager.operationQueue cancelAllOperations];
代码demo:
1、GET请求
第一种情况:服务端的响应体的形式是text/json格式
第二种情况:服务端响应体的content-type: 是text/xml格式
第三种情况: 服务端返回的响应体的content-type: 是text/html格式
2、get请求中的https 安全认证
3、AF添加get请求头
四、AFNetWorking处理POST请求
代码demo:
1、post&AFNetworking 参数
2、post&AFNetworking 上传文件
3、post&AFNetworking 上传头像
4、AFNetwork检测网络连接
5、检测网络连接另外一个第三方库Reachability
6、发送json数据,post请求体,发送的json格式
在要经常调用某个请求时,可以封装,节省资源。
http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库。最新版本支持session,xctool单元测试。网络获取数据一直是手机软件的重中之重,如果处理的不好,会造成很差的用户体验。随着ASIHTTPRequest的停止更新,更换网络库是必然的事情,AFNetworking就是很好的替代品。而且都是轻量级,不要担心加入太多库会多软件性能有影响。
一、为什么用第三方网络库?
什么都用苹果原生的好,XML解析用苹果自带的委托,下载图片自己写,你会发现自己管理起来很复杂,很容易出错,而且性能不好。第三方网络库可以优化这些问题。
二、为什么要用AFNetworking?
AFNetworking 目前使用比较多得一个下载库,目前一直在维护更新,使用的是非常简单,不需要添加任何关联的库。
1、带block形式, 内部是任务队列进行下载 ,就是对operation的一个封装下载。
2、还对uikit 内部的类进行类别形式添加方法(异步下载图片)。
3、还可以检测网络状态。
ASI 以前使用比较多得一个下载开源库 现在已经不维护了,ASI 使用的时候要导入很多库 比较麻烦第一点。
三、AFNetWorking处理GET请求
要使用常规的AFN网络访问
1. AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
所有的网络请求,均有manager发起
2. 需要注意的是,默认提交请求的数据是二进制的,返回格式是JSON
1> 如果提交数据是JSON的,需要将请求格式设置为AFJSONRequestSerializer
2> 如果返回格式不是JSON的,
3. 请求格式
AFHTTPRequestSerializer 二进制格式
AFJSONRequestSerializer JSON
AFPropertyListRequestSerializer PList(是一种特殊的XML,解析起来相对容易)
4. 返回格式 (响应格式)
AFHTTPResponseSerializer 二进制格式
AFJSONResponseSerializer JSON
AFXMLParserResponseSerializer XML,只能返回XMLParser,还需要自己通过代理方法解析
AFXMLDocumentResponseSerializer (Mac OS X)
AFPropertyListResponseSerializer PList
AFImageResponseSerializer Image
AFCompoundResponseSerializer 组合
取消任务
[manager.operationQueue cancelAllOperations];
代码demo:
1、GET请求
第一种情况:服务端的响应体的形式是text/json格式
第二种情况:服务端响应体的content-type: 是text/xml格式
第三种情况: 服务端返回的响应体的content-type: 是text/html格式
2、get请求中的https 安全认证
3、AF添加get请求头
四、AFNetWorking处理POST请求
代码demo:
1、post&AFNetworking 参数
2、post&AFNetworking 上传文件
3、post&AFNetworking 上传头像
4、AFNetwork检测网络连接
5、检测网络连接另外一个第三方库Reachability
6、发送json数据,post请求体,发送的json格式
相关文章推荐
- 小记Matlab和C混合编程
- spring XML格式
- D3.js制作日期折线图
- 7种形式的Android Dialog使用举例
- IOS 音频,视频,照相,摄影
- Android处理服务器返回的图片数据
- Eclipse中安装Lua Eclipse插件
- 笔记关于自制简单的操作系统 第一弹
- 用C语言实现对冗余层发送的数据包进行过滤判断处理
- CodeForces 401A Vanya and Cards
- PrestaShop 修复Google Structured Data Testing Tool 报错
- Android 编程下 shape 绘制图形
- Display概述---基础篇
- 对象加强 分层思想加强 计算机表示方法
- oscache入门 缓存
- Lytro转行挺进 虚拟现实领域 推出Immerge相机
- Camera曝光基础
- iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
- 设计算法1
- 冒泡排序