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

AFNetworking 源码阅读(v3.2.1)

2.UIKit+AFNetworking文件下是实现图片下载类 下面我们主要看AFNetworkingHTTP请求实现,我们使用AF发送一个请求很简单,如下面的一个GET请求例子 // 请求管理器...,序列化请求参数 HTTP头信息包括:请求方式、请求URL 、HTTP版本、Host、 Accept、 Cookie、 User-Agent、Accept-Language、Accept-Encoding...、Connection等,其中有很多就是AF帮助我们构建,下面贴出AFHTTPRequestSerializer初始化方法 - (instancetype)init { self = [super...做请求,它回调永远是在主队列中 到此AFNetworking文件下类就全部读完了,实际我读AF就是想了解,在请求时,AF到底都为我们做了什么,总结一下: 请求体NSURLRequest封装,涉及到构建...head信息、Request相关参数设置,请求参数序列化等 根据请求类型创建相关任务NSURLSessionTask,涉及到任务回调,线程安全等 返回数据NSData解析 HTTPS支持 这里只是简单总结这

2.1K20

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

回顾 一篇讲述了UIButton+AFNetworkingUIButton一个分类。分析了其下载器下载、图像下载以及背景图像下载。这一篇就继续讲述AFN中UIWebView分类。...该类为UIKit框架UIWebView类添加方法。 此类别中方法可以更好地控制请求周期,包括进度监视和成功/失败处理。...加载指定MIME类型、编码格式请求 下面就是看一下请求 - (void)loadRequest:(NSURLRequest *)request MIMEType:(NSString...然后判断任务状态,如果任务正在进行或者暂停,那么就取消该任务。并将任务指针设置为nil。 (b) 开启指定request请求 主要对应下面这段代码。...后记 本篇主要讲述AFN中UIWebView分类,详细分析了指定request和指定MIME类型和编码request下请求

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

AFNetworking源码探究(二十一) —— UIKit相关之UIImageView+AFNetworking分类

回顾 一篇是关于AFImageDownloader图像下载内容,这一篇主要是关于UIImageView分类AFNetworking。...// 以前任何接收者图像请求都将被取消。 // 如果图像在本地缓存,则立即设置图像,否则将立即设置指定占位符图像, // 然后在请求完成后设置远程图像。...不存在的话,那就无法请求了,这里就将当前UIImageViewimage设置为palceHolder图像,并取消该图像下载任务。...根据下载器返回凭据,更新内存中有效凭据self.af_activeImageDownloadReceipt。...并在成功时候设置图像替换掉下载图strongSelf.image = responseObject。 后记 本篇讲述了关于UIImageView分类,用于下载图像。

58141

iOS开发-AFNetworking详解

这是一篇AFNetworking详细解析 使用示例 新建一个AFHTTPSessionManagermanager,然后用manager请求对应网址信息,回调会调用successcompletionHander...工厂模式 对于HTTP协议请求有 AFHTTPRequestSerializer AFJSONRequestSerializer AFPropertyListRequestSerializer...AFImageResponseSerializer AFCompoundResponseSerializer 都依赖抽象接口 AFURLResponseSerialization 符合 开放-封闭原则 对增加请求头...、响应头是开放,而且增加内容不需要修改原内容 观察者模式 对于task每个生命周期,都会有相应事件发出 AFNetworkingTaskDidResumeNotification AFNetworkingTaskDidSuspendNotification...对于task用KVO方式去监听Progress 代理模式 AFURLSessionManagerTaskDelegate 是AF对自己逻辑封装,同时实现了 NSURLSessionTaskDelegate

1.5K60

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

AFNetworking/UIImageView+AFNetworking.m 类名: UIImageView+AFNetworking.m 作用: 先查询缓存,后以此决策下载任务 逻辑: 判断传入请求中...URL是否为空;若为空,则取消下载,imageView显示占位图片,否则,进入下一步判断 判断当前请求是否有task处于活动状态(意思可能用户单位时间内多次发了同一个请求,而在这个请求发送时已经有下载...Task执行了,这个请求将结束) 根据请求查看内存缓存中是否目前有当前请求图片,若有则查看success有无回调,有回调则将图片回调回去,否则,直接设置本ImageViewimage 若本地内存缓存没有数据...,则先将imageViewimage设置为占位图片并生成UUID,然后将请求和UUID发送出去; 若成功,则检查UUID是否和之前生成UUID相等,以防止数据出错,没有问题则根据success是否有回调将图片发送出去...网络下载 文件目录: lib/AFNetworking/UIKit+AFNetworking/AFImageDownloader.m 类名: AFImageDownloader.m 逻辑: 检查请求

1.4K20

iOS AFNetworking 源码阅读三

,赋值给我们需要返回给用户error。...而不是请求网络线程并发数。请求网络是由NSURLSession来做,它内部维护了一个线程池,用来做网络请求。它调度线程,基于底层CFSocket去发送请求和接收数据。这些线程是并发。...● 然后我们调用get或者post等去请求数据,接着会进行request拼接,AF代理字典映射,progressKVO添加等等,到NSUrlSessionresume之前这些准备工作,仍旧是在主线程中...● 然后我们调用NSUrlSessionresume,接着就跑到NSUrlSession内部去对网络进行数据请求了,在它内部是多线程并发请求数据。...最后我们来解释解释为什么回调Queue要设置并发数为1: 我认为AF这么做有以下两点原因: 1.众所周知,AF2.x所有的回调是在一条线程,这条线程是AF常驻线程,而这一条线程正是AF调度request

85840

iOS网络——AFNetworking AFURLSessionManager源码解析

- /// @name Setting Task Delegate Callbacks ///-------------------------------------- //设置session需要流时执行回调块...,提供了一系列方法用于构造各种网络请求任务,并提供回调块进行处理,还提供了一系列设置代理方法执行时执行回调块方法,这样,我们也可以监听整个网络请求过程,当然也可以忽略这些代理方法执行情况,提供了各种通知...} if (completionHandler) { completionHandler(disposition, credential); } } //处理需要一个流...在具体实现,AFURLSessionManager通过定义AFURLSessionManagerTaskDelegate来做具体task数据处理,而AFURLSessionManager只关注于通用部分实现..., NSError * _Nullable error) { //请求完成后回调 NSLog(@"receive %@ %@ %@", response, responseObject

4.3K70

iOS AFNetworking 源码阅读一

AFNetWorking一款轻量级网络请求开源框架,基于iOS和mac os 网络进行扩展高性能框架,大大降低了iOS开发工程师处理网络请求难度,让iOS开发变成一件愉快事情。...这里把代理回调线程并发数设置为1 2.self.mutableTaskDelegatesKeyedByTaskIdentifier,这个是用来让每一个请求task和我们自定义AF代理来建立映射用,...AF对task代理进行了一个封装,并且转发代理到AF自定义代理,这是AF比较重要一部分 3.就是下面这个方法: [self.session getTasksWithCompletionHandler...接下来用KVC方式,把属性值都设置到我们请求request中去。...,赋值要请求request里去 2.把请求网络参数,从array dic set这些容器类型转换为字符串,我们重点看默认转码方式: //把参数给AFQueryStringPairsFromDictionary

1.2K30

AFNetworking源码探究(十二) —— 数据解析之子类中协议方法实现

回顾 一篇讲述了一个AFURLResponseSerialization协议以及AFHTTPResponseSerializer和AFJSONResponseSerializer类中父类那个协议方法实现...这一篇看一下剩下那四个子类中该协议实现。...; } 这个实现过程和上面的是类似的,唯一不同就是验证有效,实例化调用方法不一样,这里是 responseObject = [NSPropertyListSerialization propertyListWithData...如果与setCompletionBlockWithSuccess:failure:一起使用,启用它可以显着提高iOS绘图性能,因为它允许在后台而不是在主线程中构建位图表示。 默认为YES。...static UIImage * AFImageWithDataAtScale(NSData *data, CGFloat scale) { UIImage *image = [UIImage af_safeImageWithData

49730

JAVA泛型类使用

首先说说我用到应用场景: 需求描述: 在工作流(workflow)中,存在着各种各样工作流程,这些流程呢有一些特征——1.流程基本信息相同 2.流程内容不同 在给前端写接口请求实体时候,在我接手功能之前是将流程内容实体作为流程属性放在请求实体内...,导致不同流程要写不同请求实体,违背了开闭原则。...,我们有新增流程,只需要创建流程内容实体即可。...下面要解决是前后台参数序列化问题: 我们先构造两种类型请求参数: public static void main(String[] args) { //流程基本信息...问题在哪里呢,我们稍后再分析,先给出解决方案: 我们先把请求参数转换为JSONString ,然后再转换为泛型对实体(这样就完美解决了fastjson不足): @RequestMapping(value

1.7K10
领券