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 ,XML ..... 默认的类型是JSON类型的,所以平时不需要设置(AFJSONResponseSerializer AFXMLParserResponseSerializer AFPropertyListResponseSerializer
像下面这么设置后,返回的数据就变成二进制数据流了.
AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer];
manager.responseSerializer = responseSerializer;
*/
/**
注意: 请求序列化,也有几种类型 :二进制 JSON .....默认二进制类型的请求( AFHTTPRequestSerializer AFJSONRequestSerializer AFPropertyListRequestSerializer)
向下面这么设置后,请求的数据就是JSON类型的
AFJSONRequestSerializer *requestSerializer = [AFJSONRequestSerializer serializer];
manager.requestSerializer = requestSerializer;
*/
根据实际情况更改请求数据序列化对象 和 返回数据序列化对象
9.屏蔽垃圾信息
进入一下界面进行修改
源码地址
github地址 https://github.com/makingitbest/AFNetworking-Test.git