AFNetworking 3.1.0 使用中某些知识点讲解

 

# POST / GET  请求

  /*!

     首先要知道,POST请求不能被缓存,只有 GET 请求能被缓存。因为从数学的角度来讲,GET 的结果是 幂等 的,就好像字典里的 key 与 value 就是幂等的,而 POST 不 幂等 。缓存的思路就是将查询的参数组成的值作为 key ,对应结果作为value。从这个意义上说,一个文件的资源链接,也叫 GET 请求,下文也会这样看待。

     80%的缓存需求:两行代码就可满足

     设置缓存只需要三个步骤:

     

     第一个步骤:请使用 GET 请求。

     

     第二个步骤:

     

     如果你已经使用 了 GET 请求,iOS 系统 SDK 已经帮你做好了缓存。你需要的仅仅是设置下内存缓存大小、磁盘缓存大小、以及缓存路径。甚至这两行代码不设置也是可以的,会有一个默认值。代码如下:

     要注意

     iOS 5.0开始,支持磁盘缓存,但仅支持 HTTP

     iOS 6.0开始,支持 HTTPS 缓存

      */

    NSURLCache *urlCache = [[NSURLCache alloc] initWithMemoryCapacity:4 * 1024 * 1024 diskCapacity:20 * 1024 * 1024 diskPath:nil];

    [NSURLCache setSharedURLCache:urlCache];

#########

  1. /** 
  2.  *  取消所有的网络请求 
  3.  *  a finished (or canceled) operation is still given a chance to execute its completion block before it iremoved from the queue. 
  4.  */  
  5.   
  6. +(void)cancelAllRequest  
  7. {  
  8.     [[BJAppClient sharedClient].operationQueue cancelAllOperations];  
  9. }  
  10.   
  11.   
  12.   
  13. #pragma mark -   取消指定的url请求/  
  14. /** 
  15.  *  取消指定的url请求 
  16.  * 
  17.  *  @param requestType 该请求的请求类型 
  18.  *  @param string      该请求的完整url 
  19.  */  
  20.   
  21. +(void)cancelHttpRequestWithRequestType:(NSString *)requestType  
  22.                        requestUrlString:(NSString *)string  
  23. {  
  24.     NSError * error;  
  25.     /**根据请求的类型 以及 请求的url创建一个NSMutableURLRequest---通过该url去匹配请求队列中是否有该url,如果有的话 那么就取消该请求*/  
  26.     NSString * urlToPeCanced = [[[[BJAppClient sharedClient].requestSerializer  
  27.                                   requestWithMethod:requestType URLString:string parameters:nil error:&error] URL] path];  
  28.       
  29.     for (NSOperation * operation in [BJAppClient sharedClient].operationQueue.operations) {  
  30.         //如果是请求队列  
  31.         if ([operation isKindOfClass:[NSURLSessionTask class]]) {  
  32.             //请求的类型匹配  
  33.             BOOL hasMatchRequestType = [requestType isEqualToString:[[(NSURLSessionTask *)operation currentRequest] HTTPMethod]];  
  34.             //请求的url匹配  
  35.             BOOL hasMatchRequestUrlString = [urlToPeCanced isEqualToString:[[[(NSURLSessionTask *)operation currentRequest] URL] path]];  
  36.             //两项都匹配的话  取消该请求  
  37.             if (hasMatchRequestType&&hasMatchRequestUrlString) {  
  38.                 [operation cancel];  
  39.             }  
  40.         }  
  41.     }  
  42. }  

  

相关链接:

https://github.com/boai/BANetManager
http://www.jianshu.com/p/6856bd9050fc
http://blog.csdn.net/heberan/article/details/51567165
NSURLCache
http://www.cnblogs.com/cbw1987/p/5910624.html

转载于:https://www.cnblogs.com/xieyulin/p/7060529.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 8 Streams:过滤和谓词否定

最近,有关LJC 邮件列表的成员在流中.filter方法中使用谓词否定的有趣讨论,因此我认为值得在博客文章中进行总结。 讨论的主题是使用.filter和否定谓词的方法。 这篇文章的代码可以在我的github帐户中找到 。 也许这就是您可能会想到的方式,…

sql server2008如何修改mac地址_如何查看本机的MAC地址和IP地址?

MAC地址是每台电脑或是手机设备中唯一进行识别的编码,IP地址则是路由器分配给电脑或是手机设备联网使用的一个编码。当我们电脑或无法上网,都需要查看IP地址是否正确。那如何查看MAC地址和IP地址呢?方法一:如何电脑已经成功联网了…

计算机工作原理 仿真,虚拟DCS仿真工作原理

虚拟dcs(ViRTUal DCS)是相对于在过程工业系统中运行的真实DCS(Real DCS)而言的,"虚拟DCS"就是将真实DCS在非DCS的计算机系统中以某种形式再现。"虚拟"是现今广泛使用的一种高新技术概念,比如有实现视景模拟的"虚拟现实"、…

poj1062 Bellman 最短路应用

昂贵的聘礼Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 41066 Accepted: 11959Description 年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用10000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出…

vlookup练习_大胆合并吧!VLOOKUP坐字法专做单元格合并查找

回复[目录]学习113篇Excel教程全套Excel视频教程,微信扫码观看编按:前面才讲了Excel家规,数据源表不能有合并单元格,今天就嘚瑟地呼吁“大胆合并”。为何?因为老菜鸟给大家带来了单元格合并查找利器VLOOKUP坐字法查找。…

第一代计算机主要应用领域为数据处理,第一代计算机主要应用领域为____。    A.数据处理 B.人工智能 C.科学计算 D.过程控制...

C、科学计算。一代主要用于科学计算,二代用与数据处理。计算机发明者约翰冯诺依曼。计算机是20世纪最先进的科学技术发明之一,对人类的生产活动和社会活动产生了极其重要的影响,并以强大的生命力飞速发展。它的应用领域从最初的军事科研应用扩…

jaxb 映射 空字段_JAXB和未映射的属性

jaxb 映射 空字段JAXB(JSR-222)是例外配置,这意味着存在默认映射应用于域对象。 这意味着有时您需要显式排除字段/属性。 在这篇文章中,我将讨论如何使用XmlTransient或XmlAccessorType(XmlAccessType.NONE&#xff09…

vscode 书签_10个我必备的 VS code 拓展

推荐:Vue 3中令人激动的新功能:FragmentSuspense多v-modelVS Code是我最喜欢的文本编辑器。它是目前最可扩展的、最流行的代码编辑器。而且令人惊讶的是,它是由微软制作的(我知道)。在我看来,没有任何其他IDE或编辑器能比VS Code更…

u盘显示项目不在计算机zhng,能装在u盘上的操作系统有哪些?

满意答案zhng9211推荐于 2016.08.27采纳率:51% 等级:11已帮助:7556人可装在U盘上的操作系统现在的计算机技术简直日新月异,U盘,固态硬盘等等存储介质做的可以越来越大,并越来越便宜。电脑已经不是稀罕物…

推荐 -- 极客导航,让工作学习更有效率

给大家推荐一个导航,很实用;极客导航精心挑选网址,让您的工作更有效率; 传送门: http://www.gogeeks.cn/ 转载于:https://www.cnblogs.com/JsonShare/p/7064438.html

从数组到流再到Java 8

不久前,我们将一些Eclipse插件项目升级到Java8。此后再也没有回头。 除其他事项外,使用lambda和streams API ,过滤,映射和查找集合中的元素变得更加容易和简洁。 我想到目前为止,对于大多数人来说,什么都没…

iphone型号表_机器人造iPhone,苹果奋斗八年,还是败给了富士康工人

8 年前,当蒂姆 库克在富士康观看机器人进行 iPad 实验生产视频时,似乎看到了新时代的希望。郭台铭曾表示,预计在 2014 年可以在富士康工厂中部署 100 万台机器人,进而实现高度自动化的「无人工厂」。机器之心报道,参与…

笔记本如何选择修复计算机,如何处理旧的笔记本电脑?这些操作必不可少!

原标题:如何处理旧的笔记本电脑?这些操作必不可少!如何处理旧的笔记本电脑?不要把它丢掉。那台旧笔记本电脑至少应适当回收。就算是打算仅回收旧笔记本电脑,也请确保有效擦除所有数据。备份如今,云服务如此…

Android开源工具项目集合

最近因为要去外派了,工欲善其事,必先利其器!所以又回顾了一下自己github上所收藏的项目,也算是温故而知新吧。 最流行的Android组件大全 http://www.open-open.com/lib/view/open1409108030307.html android开源项目分类汇总 http…

算法工程师和python_算法工程师只掌握Python行吗?如果在java和cpp中选一门语言学习哪个更有用?...

算法工程师只掌握python有可能不够用的。算法本身是脱离编程语言的。以目前的市场环境格局,大量的算法工程师都不可能全部时间精力投入到算法研究上来,是要实际参与到也许项目里面去的。不论是ai相关的模式识别方面的算法还是传统的一些计算机确定性算法…

删除 终端服务器,终端服务器命令更改 - Windows Server | Microsoft Docs

终端服务器命令:更改09/14/2020本文内容本文提供有关终端服务器命令的一些信息 change 。适用于: Windows Server 2012R2原始 KB 编号: 186504摘要该命令 change 将替换 Citrix Winframe 中的 CHGLOGON、CHGUSER 和 CHGPORT。更改实用程序…

Android-Universal-Image-Loader学习笔记(3)--内存缓存

前面的两篇博客写了文件缓存。如今说说Android-Universal-Image-Loader的内存缓存。该内存缓存涉及到的类如图所看到的 这些类的继承关系例如以下图所看到的: 如同文件缓存一样,内存缓存涉及的接口也有两个:MemoryCacheAware 和MemoryCache&a…

java nosql_Java EE的NoSQL的未来

java nosql从现在开始一段时间以来,我一直在关注NoSQL的近期发展势头,似乎这个流行语也引起了企业Java界的某种关注。 即EclipseLink 2.4开始支持MongoDB和Oracle NoSQL 。 将EclipseLink作为JPA参考实现,您可能想知道这对Java EE 7意味着什么…

css设置字体颜色怎么设,css里面怎么设置字体颜色?

在html中我们经常要用到css样式来美化html标签的一些不足之处,今天我们就来说说如何用css的基本样式来改变文本的颜色,文章通俗易懂,希望大家看完后能练习练习加深印象。一、首先我们先给大家看个html字体的基础代码:HTML中文网字…

visio科学图形包_科学网—科研必备:几款好用的流程图工具,助力你的论文/科研绘图...

写SCI论文常常会遇到一个问题——如何才能让读者通俗易懂地理解自己的研究?如果不能让读者了解研究过程,读者会对研究结果是否合理、如何应用存在疑问;尤其是期刊编辑和审稿人如果不能通过咱们的叙述,清楚地了解研究内容&#xff…