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];
#########
- /**
- * 取消所有的网络请求
- * a finished (or canceled) operation is still given a chance to execute its completion block before it iremoved from the queue.
- */
- +(void)cancelAllRequest
- {
- [[BJAppClient sharedClient].operationQueue cancelAllOperations];
- }
- #pragma mark - 取消指定的url请求/
- /**
- * 取消指定的url请求
- *
- * @param requestType 该请求的请求类型
- * @param string 该请求的完整url
- */
- +(void)cancelHttpRequestWithRequestType:(NSString *)requestType
- requestUrlString:(NSString *)string
- {
- NSError * error;
- /**根据请求的类型 以及 请求的url创建一个NSMutableURLRequest---通过该url去匹配请求队列中是否有该url,如果有的话 那么就取消该请求*/
- NSString * urlToPeCanced = [[[[BJAppClient sharedClient].requestSerializer
- requestWithMethod:requestType URLString:string parameters:nil error:&error] URL] path];
- for (NSOperation * operation in [BJAppClient sharedClient].operationQueue.operations) {
- //如果是请求队列
- if ([operation isKindOfClass:[NSURLSessionTask class]]) {
- //请求的类型匹配
- BOOL hasMatchRequestType = [requestType isEqualToString:[[(NSURLSessionTask *)operation currentRequest] HTTPMethod]];
- //请求的url匹配
- BOOL hasMatchRequestUrlString = [urlToPeCanced isEqualToString:[[[(NSURLSessionTask *)operation currentRequest] URL] path]];
- //两项都匹配的话 取消该请求
- if (hasMatchRequestType&&hasMatchRequestUrlString) {
- [operation cancel];
- }
- }
- }
- }
相关链接:
AFNetworking 3.1.0 使用中某些知识点讲解的更多相关文章
- javascript数组的知识点讲解
javascript数组的知识点讲解 阅读目录 数组的基本方法如下 concat() join() pop() push() reverse() shift() sort() splice() toS ...
- 小程序基础知识点讲解-WXML + WXSS + JS,生命周期
小程序基础 小程序官方地址,小程序开发者工具,点击此处下载.在微信小程序中有一个配置文件project.config.json,此文件可以让开发者在不同设备中进行开发. 微信小程序共支持5种文件,wx ...
- Android开发工程师文集-Android知识点讲解
前言 大家好,给大家带来Android开发工程师文集-Android知识点讲解的概述,希望你们喜欢 WebView讲解 一般通过Intent调用系统的浏览器: Uri uri = Uri.parse( ...
- iOS 9 平台上 AFNetworking 框架 3.0 版本号解决的问题和问题解决
iOS 9 平台上 AFNetworking 框架 3.0 版本号解决的问题和问题解决 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名- ...
- AFNetworking 2.5.0版本的使用
http://www.mamicode.com/info-detail-477899.html AFNetworking 2.5.0版本的使用 http://afnetworking.com/ htt ...
- 安装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 ...
- AFNetworking 新版本3.0的迁移
AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持.如果项目以前使用过这些API,那么我们需要升级到基于 NSURLSession 的API的AFNet ...
- 第三方库AFNetworking 3.1.0的简单使用
AFNetworking是一个 在iOS开发中 使用非常多网络开源库.它是一个轻量级的网络请求API类库. 适用于iOS以及Mac OS X.它构建于在(Apple iOS开发文档) NSURLCon ...
- 10 OCP知识点讲解 之 什么是Buffer Cache?
OCP知识点讲解 之 什么是Buffer Cache? 分类: Oracle 2012-06-22 17:36:54 一.Buffer cache作用: Buffer cache是Oracle建立 ...
随机推荐
- java webservice maven spring Class Not Found Exception解决
project clean——>maven clean——>update maven ——>server clean——>build project ——>maven i ...
- Luogu 4449 于神之怒加强版
挺套路的题,然而一开始还是想错了…… $\sum_{i = 1}^{n}\sum_{j = 1}^{m}gcd(i, j) ^ {k} = \sum_{T = 1}^{min(n, m)}\left ...
- Imageloader、Glide、Fresco的性能及加载速度比较
一.使用方式: // 下面两个依赖包可选,根据需求二选一即可, compile 'com.ladingwu.library:fresco:0.0.9' compile 'com.la ...
- web端跨域调用webapi(转)
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案. 通过自己的研究以及在网上看了一些大神的博客,写了一个Demo 首先新建一个webapi的程序,如下图所示: 由于微软已 ...
- ScreenCapture-HDwik5.0整合教程
示例下载:http://yunpan.cn/Q9qzFmf6sF57z 1.上传ScreenCapture文件夹 2.上传upload.php文件 2.1修改upload.php路径 3.修改Scre ...
- 排序:快速排序Quick Sort
原理,通过一趟扫描将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序 ...
- swift 学习之 UIAlertViewController
// // PushViewController.swift // tab // // Created by su on 15/12/7. // Copyright © 2015年 tian. ...
- (DP)uva 10036 Problem C: Divisibility
链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=88171#problem/F 代码: #include <cstdio> ...
- 解决阿里云OSS跨域问题
解决阿里云OSS跨域问题 现象 本人项目中对阿里云图片请求进行了两次,第一次通过img标签进行,第二次通过异步加载获取.第一次请求到图片,浏览器会进行缓存,随后再进行异步请求,保存跨域失效. 错误信息 ...
- 动态规划 HDU1231-------最大连续子序列
Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i < ...