# 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. }

相关链接:

NSURLCache

AFNetworking 3.1.0 使用中某些知识点讲解的更多相关文章

  1. javascript数组的知识点讲解

    javascript数组的知识点讲解 阅读目录 数组的基本方法如下 concat() join() pop() push() reverse() shift() sort() splice() toS ...

  2. 小程序基础知识点讲解-WXML + WXSS + JS,生命周期

    小程序基础 小程序官方地址,小程序开发者工具,点击此处下载.在微信小程序中有一个配置文件project.config.json,此文件可以让开发者在不同设备中进行开发. 微信小程序共支持5种文件,wx ...

  3. Android开发工程师文集-Android知识点讲解

    前言 大家好,给大家带来Android开发工程师文集-Android知识点讲解的概述,希望你们喜欢 WebView讲解 一般通过Intent调用系统的浏览器: Uri uri = Uri.parse( ...

  4. iOS 9 平台上 AFNetworking 框架 3.0 版本号解决的问题和问题解决

    iOS 9 平台上 AFNetworking 框架 3.0 版本号解决的问题和问题解决 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...

  5. AFNetworking 2.5.0版本的使用

    http://www.mamicode.com/info-detail-477899.html AFNetworking 2.5.0版本的使用 http://afnetworking.com/ htt ...

  6. 安装CocoaPods报错 - [!] The dependency `AFNetworking (~> 3.1.0)` is not used in any concrete target.

    今天新机装cocopods时,等安装完毕发觉出现[!] The dependency `AFNetworking (~> 3.1.0)` is not used in any concrete ...

  7. AFNetworking 新版本3.0的迁移

    AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持.如果项目以前使用过这些API,那么我们需要升级到基于 NSURLSession 的API的AFNet ...

  8. 第三方库AFNetworking 3.1.0的简单使用

    AFNetworking是一个 在iOS开发中 使用非常多网络开源库.它是一个轻量级的网络请求API类库. 适用于iOS以及Mac OS X.它构建于在(Apple iOS开发文档) NSURLCon ...

  9. 10 OCP知识点讲解 之 什么是Buffer Cache?

    OCP知识点讲解 之 什么是Buffer Cache? 分类: Oracle 2012-06-22 17:36:54   一.Buffer cache作用: Buffer cache是Oracle建立 ...

随机推荐

  1. Java07

    /* 定义一个类Demo,其中定义一个求两个数据和的方法, 定义一个测试了Test,进行测试. 变量什么时候定义为成员变量: 如果这个变量是用来描述这个类的信息的,那么,该变量就应该定义为成员变量. ...

  2. asp.net 在自己指定的文件夹下面弄个App.config来读取配置

    .注意首先你要在你的应用程序的根目录下面新建一个Config的文件夹,然后在你新建的Config文件夹下面建立一个MyApp.config文件,根据标准的App.config复制一个过来稍作修改就好, ...

  3. Overflow与块状格式上下文

  4. Linux服务器上如何设置MySQL的max_allowed_packe

    mysql根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会被max_allowed_packet 参数限制掉,导致失败. 查看目前配置  show VARIABLES like ...

  5. mysql 更新替换字符串

    update zxg set newlevel = REPLACE(newlevel,'b','') 把表zxg中的newlevel字段中的b删除

  6. BTrace追踪Hadoop部署

    Hadoop集成BTrace 1.BTrace 1.1BTrace部署 1.下载BTrace工具包,官网地址:https://kenai.com/projects/btrace/downloads/d ...

  7. 4、Docker的安装

      docker官方安装文档 Mac上安装Docker   Install Docker for Mac | Docker Documentation Windows安装Docker   Instal ...

  8. cron和crontab

    crontab -l 列出目前的计划任务(时程表) crontab -e 编辑计划任务   计划任务的格式如下: f1 f2 f3 f4 f5 program 其中 f1 是表示分钟,f2 表示小时, ...

  9. 后台生产验证码code和byte[]图片

    引用命名空间 using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imaging;using System ...

  10. 升级到Sharepoint 2013后页面打开速度慢

    这个问题现在有了一些新的发现. 首先,我找到了重现客户那里出现的那个复杂SQL语句的方法.这个现象其实是这样的: 当WebApplication的“List View Threshold” 数量大于 ...