AFNetworking 3.1.0 使用中某些知識點講解,afnetworking3.1.0

來源:互聯網
上載者:User

AFNetworking 3.1.0 使用中某些知識點講解,afnetworking3.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/BANetManagerhttp://www.jianshu.com/p/6856bd9050fchttp://blog.csdn.net/heberan/article/details/51567165NSURLCachehttp://www.cnblogs.com/cbw1987/p/5910624.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.