AFNetworking的理解

AFNetworking的理解

使用方法

1. 新建的工程中导入AFNetworking3.0中的(AFNetworking 和UIKit+AFNetworking两个文件夹)

2. 在用到AFNetworking的地方,引入头文件: #import "AFNetworking.h"

AFNetworking的理解

3. 在运行完上面这个代码后会出现下面的问题

AFNetworking的理解

这是苹果网络安全的问题,解决方法:在项目的info.plist添加一下元素,就可以正常运行了.

AFNetworking的理解

4. 问题:将上述的网址用POST方法来请求,会出现的问题

AFNetworking的理解

会出现以下错误

AFNetworking的理解

我在上面设置了,返回序列的contentType 的类型,但是仍会出现错误,就是因为这个URL只能用GET请求(所以不能用post)

manager.responseSerializer.acceptableContentTypes = [NSSet setWithArray:@[@"text/html", @"", @""]];

5. 问题:拆分GET请求的URL,有可能出现的问题如下:

AFNetworking的理解

添加了 (application/json)就成功请求数据了.

6. 问题:URL为POST请求的,就算用post请求也会有错误

AFNetworking的理解

错误是这样的

AFNetworking的理解

所以知道怎么改了吗?>>>>>添加 (text/plain) 问题完美解决啦!

可以试一下GET请求一下网址.能成功对吧!

7. Upload上传数据,这个没法测试,大致代码如下,我已经测试了

AFNetworking的理解

8. 其他问题 :请求数据序列化类型的设置和返回数据序列化类型的设置

/**

注意: 数据返回序列化:二进制流 ,JSON ,XML ..... 默认的类型是JSON类型的,所以平时不需要设置(AFJSONResponseSerializer  AFXMLParserResponseSerializer  AFPropertyListResponseSerializer

像下面这么设置后,返回的数据就变成二进制数据流了.

AFHTTPResponseSerializer *responseSerializer  = [AFHTTPResponseSerializer serializer];

manager.responseSerializer                             = responseSerializer;

*/

/**

注意: 请求序列化,也有几种类型 :二进制   JSON .....默认二进制类型的请求(  AFHTTPRequestSerializer  AFJSONRequestSerializer  AFPropertyListRequestSerializer)

向下面这么设置后,请求的数据就是JSON类型的

AFJSONRequestSerializer *requestSerializer    = [AFJSONRequestSerializer serializer];

manager.requestSerializer                            = requestSerializer;

*/

AFNetworking的理解

根据实际情况更改请求数据序列化对象 和 返回数据序列化对象

AFNetworking的理解

9.屏蔽垃圾信息

AFNetworking的理解

AFNetworking的理解

进入一下界面进行修改

AFNetworking的理解

源码地址

github地址 https://github.com/makingitbest/AFNetworking-Test.git

上一篇:inux设备驱动归纳总结(五):2.操作硬件——IO内存【转】


下一篇:34岁安卓开发大叔感慨,架构师必备技能