AFNetworking阅读(一)
2016-06-21 21:26
225 查看
第一次进行源码的阅读,AFNetWorking在工作中最为常用,先写AFNetworking的阅读笔记。
这是我的问题
版本:使用的AFNetworking为3.0版本?版本之间的差异有有哪些?
AFNetworking的作用?
怎样使用AFNetworking?
AFNetworking和ASI对比?
解决问题
版本:使用的AFNetworking为3.0版本?版本之间的差异有有哪些?
通过查看资料知道:
AFNetworking 1.0建立在NSURLConnection的基础API之上 ,AFNetworking 2.0开始使用NSURLConnection的基础API ,以及较新基于NSURLSession的API的选项。 AFNetworking 3.0现已完全基于NSURLSession的API,这降低了维护的负担,同时支持苹果增强关于NSURLSession提供的任何额外功能。苹果的API已经废弃了NSURLConnection,所以我们将AFNetworking需要进行3.0的迁移。
AFNetworking
3.0正式支持的iOS 7, Mac OS X的10.9, watchOS 2 , tvOS 9 和Xcode 7。
AFNetworking的作用?
我们一般的作用是实现数据请求和文件上传下载,断点续传的功能。
怎样使用AFNetworking?
在Applegate中做以下处理:
/**
NSURLCache
为您的应用的 URL
请求提供了内存中(对应memoryCapacity)以及磁盘上(对应diskCapacity)的综合缓存机制。所以你想使用NSURLCache带来的好处,就需要在此处设置一个sharedURLCache。
*/
NSURLCache
*URLCache = [[NSURLCache
alloc]
initWithMemoryCapacity:4
*
1024 *
1024 diskCapacity:20
*
1024 *
1024 diskPath:nil];
[NSURLCache
setSharedURLCache:URLCache];
#pragma mark -
当你有session task正在运行时,这个小菊花就会转啊转。这个是自动检测的。
[[AFNetworkActivityIndicatorManager
sharedManager]
setEnabled:YES];
封装一个类HTTPTool继承自
AFHTTPSessionManager,提供一个类方法和一个网络请求方法
在.m文件中,单例模式简单封装一下,在别的地方可以随时调用啦。
+(instancetype)shareTool
{
static
HttpTool *_shareTool =
nil;
static
dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//
初始化shareTool的base url,此处为@"https://api.app.net/"
_shareTool = [[self
alloc]
initWithBaseURL:[NSURL
URLWithString:kBaseURL]];
//
设置HTTP Client的安全策略为AFSSLPinningModeNone
_shareTool.securityPolicy
= [AFSecurityPolicy
policyWithPinningMode:AFSSLPinningModeNone];
});
return
_shareTool;
}
知识点:SSL Pining
Https对比Http已经很安全,但在建立安全链接的过程中,可能遭受中间人攻击。防御这种类型攻击的最直接方式是Client使用者能正确鉴定Server发的证书【目前很多浏览器在这方面做的足够好,用户只要不在遇到警告时还继续其中的危险操作】,而对于Client的开发者而言,一种方式保持一个可信的根证书颁发机构列表,确认可信的证书,警告或阻止不是可信根证书颁发机构颁发的证书。
SSL Pinning其实就是证书绑定,一般浏览器的做法是信任可信根证书颁发机构颁发的证书,但在移动端应用只和少数的几个Server有交互,所以可以做得更极致点,直接就在应用内保留需要使用的具体Server的证书。在安全策略中有些,后续将会提及到。
AFNetworking和ASI对比?
AFN:使用简单,自带了网络监控功能
这是我的问题
版本:使用的AFNetworking为3.0版本?版本之间的差异有有哪些?
AFNetworking的作用?
怎样使用AFNetworking?
AFNetworking和ASI对比?
解决问题
版本:使用的AFNetworking为3.0版本?版本之间的差异有有哪些?
通过查看资料知道:
AFNetworking 1.0建立在NSURLConnection的基础API之上 ,AFNetworking 2.0开始使用NSURLConnection的基础API ,以及较新基于NSURLSession的API的选项。 AFNetworking 3.0现已完全基于NSURLSession的API,这降低了维护的负担,同时支持苹果增强关于NSURLSession提供的任何额外功能。苹果的API已经废弃了NSURLConnection,所以我们将AFNetworking需要进行3.0的迁移。
AFNetworking
3.0正式支持的iOS 7, Mac OS X的10.9, watchOS 2 , tvOS 9 和Xcode 7。
AFNetworking的作用?
我们一般的作用是实现数据请求和文件上传下载,断点续传的功能。
怎样使用AFNetworking?
在Applegate中做以下处理:
/**
NSURLCache
为您的应用的 URL
请求提供了内存中(对应memoryCapacity)以及磁盘上(对应diskCapacity)的综合缓存机制。所以你想使用NSURLCache带来的好处,就需要在此处设置一个sharedURLCache。
*/
NSURLCache
*URLCache = [[NSURLCache
alloc]
initWithMemoryCapacity:4
*
1024 *
1024 diskCapacity:20
*
1024 *
1024 diskPath:nil];
[NSURLCache
setSharedURLCache:URLCache];
#pragma mark -
当你有session task正在运行时,这个小菊花就会转啊转。这个是自动检测的。
[[AFNetworkActivityIndicatorManager
sharedManager]
setEnabled:YES];
封装一个类HTTPTool继承自
AFHTTPSessionManager,提供一个类方法和一个网络请求方法
在.m文件中,单例模式简单封装一下,在别的地方可以随时调用啦。
+(instancetype)shareTool
{
static
HttpTool *_shareTool =
nil;
static
dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
//
初始化shareTool的base url,此处为@"https://api.app.net/"
_shareTool = [[self
alloc]
initWithBaseURL:[NSURL
URLWithString:kBaseURL]];
//
设置HTTP Client的安全策略为AFSSLPinningModeNone
_shareTool.securityPolicy
= [AFSecurityPolicy
policyWithPinningMode:AFSSLPinningModeNone];
});
return
_shareTool;
}
知识点:SSL Pining
Https对比Http已经很安全,但在建立安全链接的过程中,可能遭受中间人攻击。防御这种类型攻击的最直接方式是Client使用者能正确鉴定Server发的证书【目前很多浏览器在这方面做的足够好,用户只要不在遇到警告时还继续其中的危险操作】,而对于Client的开发者而言,一种方式保持一个可信的根证书颁发机构列表,确认可信的证书,警告或阻止不是可信根证书颁发机构颁发的证书。
SSL Pinning其实就是证书绑定,一般浏览器的做法是信任可信根证书颁发机构颁发的证书,但在移动端应用只和少数的几个Server有交互,所以可以做得更极致点,直接就在应用内保留需要使用的具体Server的证书。在安全策略中有些,后续将会提及到。
AFNetworking和ASI对比?
AFN:使用简单,自带了网络监控功能
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- iOS中的UIKeyboard键盘视图使用方法小结
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法