[iOS开发] AFNetworking整体框架简单整理

  • A+
所属分类:其他教程
摘要

DSC0000.jpg 下载附件 2022-10-25 11:07 上传DSC0001.jpg 下载附件 2022-10-25 11:07 上传DSC0002.jpg

一、AFNetworking整体框架是怎样的
1、UIKit集成模块 UIKit
2、请求序列化 Serialization
3、响应序列化 Serialization
4、会话 NSURLSession AFURLSessionManager最核心 子类:AFHTTPSessionManager
6、网络安全模块 Security
7、网络监听 Reachability

[iOS开发] AFNetworking整体框架简单整理

DSC0000.jpg

2022-10-25 11:07 上传

[iOS开发] AFNetworking整体框架简单整理

DSC0001.jpg

2022-10-25 11:07 上传

会话NSURLSession模块
NSURLSession

  • AFURLSessionManager:最核心模块
  • AFHTTPSessionManager:继承 AFURLSessionManager 使用频率最高
  • AFHTTPSessionManager包含有:
  • AFURLResponseSerialization:响应序列化,负责将网络请求的结果解析
  • AFURLRequestSerialization:请求序列化负,责根据传递参数组装、拼接最终转化出的一个结果
[iOS开发] AFNetworking整体框架简单整理

DSC0002.jpg

2022-10-25 11:07 上传

面试题:
AFURLSessionManage都负责哪些工作

  • 创建和管理NSURLSession、NSURLSessionTask
  • 实现NSURLSessionDelegate等协议的代理方法
  • 引入AFSecurityPolicy保证请求安全
  • 引入AFNetworkReachabilityManager监控网络状态

发送一个Get方式的HTTP请求
1、调用get方法、内部使用 NSURLSessionDataTask 来实现
2、requestWithMethed 请求序列化、字典转换成json字符串
3、dataTaskWithRequest 调用系统方法、给dataTask 设置代理给 AFURLSessionManagenTaskDelegate
验证证书合法性的代码:

[iOS开发] AFNetworking整体框架简单整理

DSC0003.jpg

2022-10-25 11:07 上传

SecTrustRef

SecTrustRef 这是一个需要验证的信任对象,包含待验证的证书和支持的验证方法等.     SecTrustResultType 表示验证结果。其中 kSecTrustResultProceed表示serverTrust验证成功,且该验证得到 了用户认可(例如在弹出的是否信任的alert框中选择always trust)。 kSecTrustResultUnspecified表示 serverTrust验证成功,此证书也被暗中信任了,但是用 户并没有显示地决定信任该证书。 两者取其一就可以认为对serverTrust验证成功。   SecTrustEvaluate 证书校验函数,在函数的内部递归地从叶节点证书到根证书验证。 需要验证证书本身的 合法性(验证签名完整性,验证证书有效期等); 验证证书颁发者的合法性(查找颁发者 的证书并检查其合法性,这个过程是递归的).而递归的终止条件是证书验证过程中遇到 了锚点证书(锚点证书:嵌入到操作系统中的根证书,这个根证书是权威证书颁发机构颁 发的自签名证书). 上面所说的只是一般的校验方法,那么在有的客户端中,为了确定服务端返回的证书是否是自己所需要的证书,这时我们需要在客户端中导入本地证书。

NSURLAuthenticationChallenge

(NSURLProtectionSpace *)protectionSpace;  (NSURLCredential *)proposedCredential; (NSInteger)previousFailureCount;  (NSURLResponse *)failureResponse;  (NSError *)error;

NSURLProtectionSpace
NSURLAuthenticationChallenge中 的一个属性NSURLProtectionSpace这是权限认证的核心,它通常被称为保护空间,表示需要认证的服务器或者域,它定义了一系列的约束去告诉我们需要向服务器提供什么样的 认证,这个保护空间含有以下几个信息:

[iOS开发] AFNetworking整体框架简单整理

DSC0004.jpg

2022-10-25 11:07 上传

其中authenticationMethod中包含的认证类型如下
NSURLProtectionSpaceHTTP//_http协议
NSURLProtectionSpaceHTTPs//https协议
NSURLProtectionSpaceFTP//ftp协议
NSURLProtectionSpaceHTTPProxy//http代理
NSURLProtectionSpaceHTTPSProxy//https代理
NSURLProtectionSpaceFTPProxy//ftp代理
NSURLProtectionSpacesockSProxy//socks代理
NSURLAuthenticationMethodDefault//协议的默认身份认证
//http的basic认证,等同于NSURLAuthenti
NSURLAuthenticationMethodHTTPBasic
cationMethodDefault
NSURLAUthenticationMethodHTPDigest//htt摘要认证
NSURLAuthenticationMethodHTMLForm//htm表单认证

[iOS开发] AFNetworking整体框架简单整理

DSC0005.jpg

2022-10-25 11:07 上传

NSURLAUthenticatioMethodlnrtifct,适用协议
//ServerTrust认证,适用于任何协议
NSURLAuthenticationMethodserverTrust

[iOS开发] AFNetworking整体框架简单整理

DSC0006.jpg

2022-10-25 11:07 上传

[iOS开发] AFNetworking整体框架简单整理

DSC0007.jpg

2022-10-25 11:07 上传

[iOS开发] AFNetworking整体框架简单整理

DSC0008.jpg

2022-10-25 11:07 上传

AFN 缓存模块对比SD
●AFN图片缓存是设定2个临界值,最大存储值和清理后保留的缓存值。到达最大值则清理最早存入的图片。直到达到清理后需要留存的临界值为止。只以临界值为节点清理。
●SD图片缓存很明显是愿意牺牲空间来换时间,能多存点就多存点。

  • 我的微信公众号
  • 扫一扫关注
  • weinxin
  • 我的新浪微博号
  • 扫一扫关注
  • weinxin
小辉博客

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: