IT狗

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

此文由 IT狗 编辑,本网站所发布展示的作品/文章版权归原作者所有,任何商业用途均须联系作者!

相关推荐

评论 暂无评论