你的位置:首页 > 操作系统

[操作系统]AFNetworking的理解


AFNetworking的理解

 

使用方法

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

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

 

 

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

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

 

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

会出现以下错误

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

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

 

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

  

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

 

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

错误是这样的

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

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

 

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

 

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

/**

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

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

           AFHTTPResponseSerializer *responseSerializer  = [AFHTTPResponseSerializer serializer];

           manager.responseSerializer                             = responseSerializer;

*/

/**

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

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

      AFJSONRequestSerializer *requestSerializer    = [AFJSONRequestSerializer serializer];

       manager.requestSerializer                            = requestSerializer;

*/

 

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

 

源码地址

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