# 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. +(void)cancelAllRequest
  6. {
  7. [[BJAppClient sharedClient].operationQueue cancelAllOperations];
  8. }
  9. #pragma mark -   取消指定的url请求/
  10. /**
  11. *  取消指定的url请求
  12. *
  13. *  @param requestType 该请求的请求类型
  14. *  @param string      该请求的完整url
  15. */
  16. +(void)cancelHttpRequestWithRequestType:(NSString *)requestType
  17. requestUrlString:(NSString *)string
  18. {
  19. NSError * error;
  20. /**根据请求的类型 以及 请求的url创建一个NSMutableURLRequest---通过该url去匹配请求队列中是否有该url,如果有的话 那么就取消该请求*/
  21. NSString * urlToPeCanced = [[[[BJAppClient sharedClient].requestSerializer
  22. requestWithMethod:requestType URLString:string parameters:nil error:&error] URL] path];
  23. for (NSOperation * operation in [BJAppClient sharedClient].operationQueue.operations) {
  24. //如果是请求队列
  25. if ([operation isKindOfClass:[NSURLSessionTask class]]) {
  26. //请求的类型匹配
  27. BOOL hasMatchRequestType = [requestType isEqualToString:[[(NSURLSessionTask *)operation currentRequest] HTTPMethod]];
  28. //请求的url匹配
  29. BOOL hasMatchRequestUrlString = [urlToPeCanced isEqualToString:[[[(NSURLSessionTask *)operation currentRequest] URL] path]];
  30. //两项都匹配的话  取消该请求
  31. if (hasMatchRequestType&&hasMatchRequestUrlString) {
  32. [operation cancel];
  33. }
  34. }
  35. }
  36. }

相关链接:

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

AFNetworking 3.1.0 使用中某些知识点讲解相关推荐

  1. PHP:案例2--商品价格计算(案例分析+设计思路+知识点讲解+源码+结果展示)

    一.案例分析 1.需求分析 若用户在一个全场8折的网站中购买了2斤香蕉.1斤苹果和3斤橘子,它们的价格分别为7.99元/斤.6.89元/斤.3.99元/斤,那么如何使用PHP程序来计算此用户实际需支付 ...

  2. 【Python数据结构系列】❤️《栈(顺序栈与链栈)》——❤️知识点讲解+代码实现

    灵魂拷问:为什么要学数据结构? 数据结构,直白地理解,就是研究数据的存储方式.数据存储只有一个目的,即为了方便后期对数据的再利用.因此,数据在计算机存储空间的存放,决不是胡乱的,这就要求我们选择一种好 ...

  3. redis相关知识点讲解,redis面试题

    redis相关知识点讲解,redis面试题 1. redis基本知识点 1.1 什么是redis? 1.2 redis的key的设计 1.3 redis的value数据类型有哪些? 1.3.1 str ...

  4. 计算机vf的讲解,计算机二级《VFP》知识点讲解:查询和视图

    计算机二级<VFP>知识点讲解:查询和视图 2017年9月计算机等级考试时间9月23日-26日,目前进入了备考的阶段.本文是百分网小编搜索整理的关于计算机二级<VFP>知识点讲 ...

  5. Zabbix 6.0 图文安装部署讲解---LNMP环境

    Zabbix 6.0 图文安装部署讲解---LNMP环境 简介 环境需求 部署环境 关闭系统防火墙 一.Mysql8.0.30 部署 二.nginx 部署 三.PHP 部署 四.zabbix-serv ...

  6. UG11.0压铸模具基础知识讲解视频教程 产品处理 修改教程

    UG11.0压铸模具基础知识讲解视频教程 产品处理 修改教程 链接:https://pan.baidu.com/s/1ykvwb06co3URH5xcVwJx3w 提取码:6ge2

  7. Alevel经济知识点讲解:effects of deflation

    经济学是研究社会如何使用世界资源的学科.A-level经济学向学生介绍构成经济世界的基本概念.理论和问题,为学生提供一个强大的知识基础. 对于希望未来从事经济或金融行业工作的人来说,这是一个很有帮助的 ...

  8. 大疆Android SDK API知识点讲解及课程最终demo展示

    大疆Android SDK API知识点讲解及课程最终demo展示 大疆Android SDK课程--主要讲解Android开发环境的搭建.如何连接无人机.获取摄像头信息以及如何导入高德地图到APP当 ...

  9. C++版本计算n阶乘末尾0的个数原理讲解及代码实现

    C++版本计算n阶乘末尾0的个数原理讲解及代码实现 /*! * Copyright (c) 2020,ZYF. * All Rights Reserved. * * \file Factorial.c ...

最新文章

  1. Ubuntu 16.04 安装 CUDA、CUDNN 和 GPU 版本的 TensorFlow 一般步骤总结
  2. DL之模型调参:深度学习算法模型优化参数之对深度学习模型的超参数采用网格搜索进行模型调优(建议收藏)
  3. jfinal mysql增删改查_Jfinal简单实现增删改查
  4. 只要存心谦卑,各人看别人比自己强。
  5. uva 10559——Blocks
  6. python入门难?几个练习实例 全会就入门了
  7. 这个工具,可视化分析10W数据后,找到了数据岗位月薪20K的秘诀
  8. 程序员你知道被迫参与一个两亿的项目,想跑还逃不掉吗?
  9. RTEMS 网络资料的部分翻译
  10. 三维点云学习(5)1-introduction on to Deep learning
  11. nlp基础—4.搜索引擎中关键技术讲解
  12. 程序员到CTO还需要大补什么营养
  13. 用python完成图形输出设备_用 Python 在多个输出设备上播放多个声音文件
  14. 记一次Springboot 启动错误(三) xxx.jar中没有主清单属性
  15. html+css 登录界面
  16. 《概率论与数理统计》速成
  17. 华为外包员工是什么样的群体?
  18. 计算机CPU四大体系架构
  19. java-斗地主无界面有序版
  20. 一文速学数模-降维模型(一)PCA(主成分分析法)原理以及应用+代码实现

热门文章

  1. word域变成正常文本_【Word小技巧】不学会后悔哦~
  2. 人脸特征值能存放在sql server中吗_SQL运行内幕:从执行原理看调优的本质
  3. Python正则表达式笔记
  4. docker java mysql_Docker 搭建 MySQL 服务
  5. C/C++冷门知识点你知道多少呢?
  6. 北科大计算机技术研招考纲,北京科技大学2021年全国硕士研究生招生考试自命题科目考试大纲...
  7. php strpos无效,簡單的PHP strpos功能不起作用,為什么?
  8. 朗读评价语言集锦_英语老师批改作业时的精彩评语集锦,超实用!
  9. 常用计算机网络技术缩写词和术语,网络技术缩写词和术语
  10. 工业交换机选择时需要注意什么?