首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

·第三方网络下载处理框架:AFNetworking网络下载处理(调用栈与缓存策略篇)

本篇文章中,笔者将着重介绍AFNetworking的方法调用栈,以及网络图片下载和缓存策略。在此之前,笔者写了一个官方文档翻译版,点击可跳转。 ? 1....task, NSError * _Nonnull error) { NSLog(@"%@",error.userInfo); }]; } 看到这里,或许可以看manager对象的AFHTTPSessionManager.../UIKit+AFNetworking/AFImageDownloader.m 类名: AFImageDownloader.m 逻辑: 检查请求的URL是否为空,失败则则返回信息(感觉这一句有点多余...并将该自定义task的NSURLSessionDataTask赋值给task;若没有,则进行下一步 由于对于磁盘缓存作者是使用NSURLCache进行的,因此,根据存储策略进行不同操作以便于下载图片后进行磁盘缓存...4)之后就是从网络下载图片,这也要注意,作者是使用AFN进行异步下载的、会生成UUID和之前一样去检验下载后UUID是否发生改变;若成功,则将先缓存图片,然后将AFImageDownloaderMergedTask

1.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS开发·网络请求方法总结复习(NSURLConnection,NSURLSession,AFNetworking)

    作为第三方框架,AFNetworking,SDWebImage等等其实它们的老版本是基于NSURLConnection封装而成的,后来才改成的基于NSURLSession。...NSURLSessionTask本身是一个抽象类,在使用的时候,通常是根据具体的需求使用它的几个子类。...关系如下: 2.1 GET请求(NSURLRequest默认设置) 使用NSURLSession发送GET请求的方法和NSURLConnection类似,整个过程如下: 1)确定请求路径(一般由公司的后台开发人员以接口文档的方式提供...AF封装了GET和POST操作的 -- AFHTTPSessionManager AFNetworking2.0和3.0区别很大,也是因为苹果废弃了NSURLConnection,而改用了NSURLSession...,AFNetworking3.0实际上只是对NSURLSession所做的操作进行了高度封装,提供更加简洁的API供编码调用。

    3.4K30

    AFNetworking源码探究(二十三) —— UIKit相关之UIWebView+AFNetworking分类(六)

    回顾 上一篇讲述了UIButton+AFNetworking的UIButton的一个分类。分析了其下载器的下载、图像的下载以及背景图像的下载。这一篇就继续讲述AFN中UIWebView的分类。...这允许通过AFNetworking加载引出的链接,并且可以确保canGoBack和canGoForward正确地更新它们的值。...---- 获取数据任务 这里面实现了UIWebView的另外一个分类_AFNetworking,利用runtime获取了数据任务。...和AFHTTPResponseSerializer对象 这个是在UIWebView的分类AFNetworking中实现的,实现方式还是使用runtime。...// AFHTTPSessionManager对象的获取 - (AFHTTPSessionManager *)sessionManager { static AFHTTPSessionManager

    42820

    iOS-网络编程(三)AFNetworking使用

    AFNetworking简单介绍 通过前面学习的HTTP协议的基本知识,GET/POST请求的区别,NSURLConnection 和 NSURLSession的使用,已经基本了解了网络请求的方法,但是相对使用比较麻烦...,AFNetworking是对NSURLConnection 和 NSURLSession的封装,使网络请求更加简单轻松,是一款非常有用的第三方框架。...AFNetworking3.0以后移除了对NSURLConnection的支持。 看一下AFNetworking 历史版本 以及框架 ? AFNetworking版本更新 ?...AFNetworking框架 这些在GitHub上都可以看到,可以去GitHub上查看。 二. AFNetworking使用 1....总结 我们一般在使用AFN的时候会将他封装到一个工具类中,使工具类成为一个中间层,这样便于我们使用和对代码的管理,以后当AFN更新或者我们要换网络请求第三方类库的时候,直接更改工具类就可以了,其他类中的的网络请求方法都不用改变

    2.2K70

    iOS开发·第三方网络下载处理框架:AFNetworking网络下载处理(官方文档翻译篇)

    本篇文章中,笔者将着重挑选了AFNetworking官方文档中的使用部分进行了翻译。关于Pod以及Carthage安装第三方库的部分,可以参考笔者相关文章。...使用方法 2.1 AFURLSessionManager AFURLSessionManager用于,基于一个指定的NSURLSessionConfiguration对象,创建和管理NSURLSession...您可以使用可达性来决定,何时应自动重试请求。 可达性通知(连接可用)是发起重试时间的好时机,虽然它可能仍然失败。 网络可达性,是确定请求可能失败原因的一个有用工具。...2.4.1 允许无效的SSL证书 AFHTTPSessionManager * manager = [AFHTTPSessionManager manager ]; manager.securityPolicy.allowInvalidCertificates...单元测试 AFNetworking在Tests子目录中包含了一套单元测试。这些测试可以简单地运行,以执行在您想要测试的平台框架上的测试操作。

    75830

    iOS----轻松掌握AFN网络顶级框架

    AFN 一、什么是AFN 全称是AFNetworking,是对NSURLConnection的一层封装 虽然运行效率没有ASI高,但是使用比ASI简单 在iOS开发中,使用比较广泛 AFN的github...(封装了常用的 HTTP 方法) GET POST UIKit + AFNetworking 分类 NSProgress :利用KVO 半自动的序列化&反序列化的功能 AFURLRequestSerialization...对苹果的网络连接检测做了一个封装 AFNetworkReachabilityManager 三、AFN基本使用 1.AFHTTPSessionManager 是AFN中最重要的对象之一 封装了HTTP...请求的常见处理 GET\POST请求 解析服务器的响应数据 创建AFHTTPSessionManager AFHTTPSessionManager *mgr = [AFHTTPSessionManager...*manager = [AFHTTPSessionManager manager]; // 2.利用网络管理者下载数据 NSURLRequest *request = [NSURLRequest

    1.2K70

    AFNetworking 源码阅读(v3.2.1)

    AFNetworking项目地址 https://github.com/AFNetworking/AFNetworking 下载打开后目录 AFNetworking 1.AFNetworking...文件下是实现HTTP请求的类 2.UIKit+AFNetworking文件下是实现图片下载的类 下面我们主要看AFNetworking的HTTP请求实现,我们使用AF发送一个请求很简单,如下面的一个GET...请求的例子 // 请求管理器 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; // 参数JSON格式 manager.requestSerializer...AFSSLPinningMode SSLPinningMode; // 这个属性保存着所有的可用做校验的证书的集合 // AFNetworking默认会搜索工程中所有.cer的证书文件 // 如果想制定某些证书...到此AFNetworking文件下的类就全部读完了,实际我读AF就是想了解,在请求时,AF到底都为我们做了什么,总结一下: 请求体NSURLRequest的封装,涉及到构建head信息、Request

    2.1K20

    从AFNetworking源码分析到应用全解 原

    在AFNetworking中,大量使用的线程安全的开发技巧,读此源码也是一次很好的多线程学习机会。...每次读优秀的代码都是一次深刻的学习,每一次模仿,都是创造的开始! 二、核心源码分析     平时我们在使用AFNetworking框架时,大多只使用其中的请求管理功能。...在使用AFNetworking进行网络请求时,如果你有过抓包,你一定会发现,在发送的普通HTTP请求的HEAD中默认包含了许多信息,其实这些都是AFHTTPRequestSerizlizaer类做的,他默认会向请求头中添加...当实际使用的内存超过最大容量时,缓存池会自动清理到期望容量。...缓存器 + (NSURLCache *)defaultURLCache; //使用初始化方法新建对象 - (instancetype)initWithSessionManager:(AFHTTPSessionManager

    3.2K51

    iOS_AFNetworking 结构解析+用例分析+源码阅读

    AFHTTPSessionManager (子类) AFHTTPSessionManager继成自AFURLSessionManager,负责创建Get/Head/Post/Put/Patch/Delete...的使用 1.遍历监听自身属性的变化, 将变化的值保存到mutableSet中, 在创建NSMutableURLRequest时设置 2.当某个属性的getter方法使用其他属性的值计算返回值时, 重写...tasksForKeyPath:方法 NSProgress的使用, 来监听进度, 控制stack的取消,暂停,恢复 Block中使用了StrongSelf调用方法 用的 FOUNDATION_EXPORT...看了一遍,先做一下笔记,以后回顾知新了再更新~ 小女子献丑了,文章有哪里不对的,望各位看官指正~ 阅读注释用Demo地址 参考文章如下: AFNetworking(v3.1.0) 源码解析 为何需要使用...HTTPs AFNetworking到底做了什么?

    58120

    源码分析之AFNetworking(二)

    建议iOS 7之后的开发者在 AFHTTPSessionManager的基础上再进行一次封装,封装一些开发者自己的需要。...而针对iOS 6以及更早的则建议使用AFHTTPRequestOperationManager。...url做了一下格式化处理,请求序列化默认用的是AFHTTPRequestSerializer进行序列化,返回结果的序列化默认用的是AFJSONResponseSerializer 下面这个方法是AFHTTPSessionManager...,请求方式都一样,最终都汇总到一个方法, AFHTTPSessionManager的封装步骤 1、根据不同的HTTP Method和不同的请求参数序列化方式,以及URL合成,从AFURLRequestSerialization...,NSURLSession提供了下面网络请求三种的API,返回三种不同的Task - (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest

    35510

    扒虫篇-Bug日志 Ⅰ

    Snip20160929_1.png “undefined symbol: __gxx_personality_v0” 是比较常见的一种报错,是因为在linux下编译C++程序,如果使用gcc命令进行编译...8.使用 AFNetworking 3.0上传图片出现超时,无法上传等问题 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];...解决办法 重启电脑,再次打开浏览器 输入测试链接,反应飞快,自己的程序跑起来也是很快,AFNetworking 3.0上传图片 也没有任何问题,Mac系统的问题造成的吗????...9.使用 AFNetworking 3.0上传图片时由于 fileName没有格式后缀造成的一系列debug 过程 使用 AFNetworking 3.0上传图片时,在成功的回调中返回了 responseObject...字符串,在排查出问题后 发现是由于: fileName:@"submit"没有设置格式造成的 PS UTF-8有效率的空间使用(仅就西方语言来讲),以及不需要操心字节顺序问题使得 UTF-8 成为存储和交流

    92220
    领券