AFNetWorking框架使用的“两个大坑”——修改请求方式和响应方式
来源:互联网 发布:软件咨询服务购买合同 编辑:程序博客网 时间:2024/05/16 14:11
引子
AFNetWorking是目前国内开发网络应用使用最多的第三方框架之一(ASI框架也具有其自身优势),对 NSURLConnection 和NSURLSession 做了封装(后期维护中逐渐剔除了其中NSURLConnection的应用)。因其提供了丰富的 API,和完善的错误解决方案,使用起来较简单而收到广大程序员同胞的喜爱。
在AFNetWorking的使用中,有两个错误是非常典型的,即需要根据需求修改默认的请求方式和响应方式,下面是AFNetWorking框架默认的请求方式和响应方式
一、修改默认的请求方式
通过上图可以看出,AFNetWorking框架默认的请求数据的方式为普通二进制,但是在实际开发中我们经常会遇到传给服务器的并不是普通二进制数据,有可能是字典等。例如下面我们模拟一个简单的登录操作,将字典传给服务器。这时就要做如下设置
//1.3 改请求的默认的序列化方式 manager.requestSerializer = [AFJSONRequestSerializer serializer]; //2.给服务器发送一个JSON格式的二进制 NSDictionary *param = @{@"username":@"xiaohua",@"age":@18}; /** 注:这时就能直接把para作为manager POST的参数传递了,这里其实AFN帮我们将 param 调用 [NSJSONxxx dataxxx] 转成JSON格式的二进制,然后发给服务器 */
二、修改默认的响应方式
通过上图可以看出,AFNetWorking框架默认的响应数据的方式为JSON,但是服务器返回给我们的数据不一定都是JSON,这会根据开发的需求而变化,这时我们就需要修改默认解析数据的方法
//将响应数据类型修改为普通二进制 manager.responseSerializer = [AFHTTPResponseSerializer serializer];
同时AFN接受数据的格式也是有限制的,通过查看框架的源码我们可以看到它默认可以哪些数据类型,当我们要传的数据不在其接收范围的话,就会报错,这时我们要进行以下操作
//text/html就是要添加的接收数据格式manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
0 0
- AFNetWorking框架使用的“两个大坑”——修改请求方式和响应方式
- AFNetWorking框架使用的“两个大坑”——修改请求方式和响应方式
- AFNetworking框架的基本使用——GET、POST登录 、设置请求与响应的数据格式
- Web请求和响应---使用代理方式
- AFNetworking进行https请求遇到的错误和解决方式
- Http请求方式和响应 协议的格式
- Http请求方式和框架
- ICAP请求和响应实例分析(REQMOD 请求方式)
- ICAP请求和响应实例分析(RESPMODE请求方式)
- ICAP请求和响应实例分析(REQMOD 请求方式)
- 使用fiddler修改请求和响应
- 几个网络访问框架的post请求使用方式
- AFnetworking框架存储cookie和使用cookie请求总结
- ios的网络请求以及jsonModel 和 AFNetworking框架的使用概要
- HTTP请求响应方式总结
- HTTP请求响应方式总结
- Ajax 传统的请求方式和使用AJAX的请求方式区别
- 对第三方框架AFNetworking网络请求的使用浅析
- (LeetCode 18) 4Sum
- Android基础:手势识别:GestureDetector
- Android视频播放的开发资源
- POJ 1840(哈希,数学,思维)
- 蓝桥杯(Java) 入门训练 圆的面积
- AFNetWorking框架使用的“两个大坑”——修改请求方式和响应方式
- Mac OS X 中安装 brew
- L2-1. 紧急救援 题目详解
- android应用程序如何调用支付宝接口
- Hadoop最新版本2.7.0的部署-学习记录01
- iOS 中各种折线.曲线.图形绘制方法集锦(折线图.走势图.柱状图.动态曲线图.形状图.划线图)
- MVC模式
- 蓝桥杯(Java) 基础练习 闰年判断
- Android中常用的框架 Volley 联网框架 (二)