欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2023/12/2 编程问答 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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];  
  •             }  
  •         }  
  •     }  
  • }  
  •   

    相关链接:

    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 使用中某些知识点讲解的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。