日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/2 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AFNetworking 3.1.0 使用中某些知识点讲解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

# POST / GET ?請(qǐng)求

??/*!

?? ? 首先要知道,POST請(qǐng)求不能被緩存,只有 GET 請(qǐng)求能被緩存。因?yàn)閺臄?shù)學(xué)的角度來講,GET 的結(jié)果是 冪等 的,就好像字典里的 key 與 value 就是冪等的,而 POST 不 冪等 。緩存的思路就是將查詢的參數(shù)組成的值作為 key ,對(duì)應(yīng)結(jié)果作為value。從這個(gè)意義上說,一個(gè)文件的資源鏈接,也叫 GET 請(qǐng)求,下文也會(huì)這樣看待。

?? ? 80%的緩存需求:兩行代碼就可滿足

?? ? 設(shè)置緩存只需要三個(gè)步驟:

? ? ?

?? ? 第一個(gè)步驟:請(qǐng)使用 GET 請(qǐng)求。

? ? ?

?? ? 第二個(gè)步驟:

? ? ?

?? ? 如果你已經(jīng)使用 了 GET 請(qǐng)求,iOS 系統(tǒng) SDK 已經(jīng)幫你做好了緩存。你需要的僅僅是設(shè)置下內(nèi)存緩存大小、磁盤緩存大小、以及緩存路徑。甚至這兩行代碼不設(shè)置也是可以的,會(huì)有一個(gè)默認(rèn)值。代碼如下:

?? ? 要注意

?? ? 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];

#########

  • /**?
  • ?*??取消所有的網(wǎng)絡(luò)請(qǐng)求?
  • ?*??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請(qǐng)求/??
  • /**?
  • ?*??取消指定的url請(qǐng)求?
  • ?*?
  • ?*??@param?requestType?該請(qǐng)求的請(qǐng)求類型?
  • ?*??@param?string??????該請(qǐng)求的完整url?
  • ?*/??
  • ??
  • +(void)cancelHttpRequestWithRequestType:(NSString?*)requestType??
  • ???????????????????????requestUrlString:(NSString?*)string??
  • {??
  • ????NSError?*?error;??
  • ????/**根據(jù)請(qǐng)求的類型?以及?請(qǐng)求的url創(chuàng)建一個(gè)NSMutableURLRequest---通過該url去匹配請(qǐng)求隊(duì)列中是否有該url,如果有的話?那么就取消該請(qǐng)求*/??
  • ????NSString?*?urlToPeCanced?=?[[[[BJAppClient?sharedClient].requestSerializer??
  • ??????????????????????????????????requestWithMethod:requestType?URLString:string?parameters:nil?error:&error]?URL]?path];??
  • ??????
  • ????for?(NSOperation?*?operation?in?[BJAppClient?sharedClient].operationQueue.operations)?{??
  • ????????//如果是請(qǐng)求隊(duì)列??
  • ????????if?([operation?isKindOfClass:[NSURLSessionTask?class]])?{??
  • ????????????//請(qǐng)求的類型匹配??
  • ????????????BOOL?hasMatchRequestType?=?[requestType?isEqualToString:[[(NSURLSessionTask?*)operation?currentRequest]?HTTPMethod]];??
  • ????????????//請(qǐng)求的url匹配??
  • ????????????BOOL?hasMatchRequestUrlString?=?[urlToPeCanced?isEqualToString:[[[(NSURLSessionTask?*)operation?currentRequest]?URL]?path]];??
  • ????????????//兩項(xiàng)都匹配的話??取消該請(qǐng)求??
  • ????????????if?(hasMatchRequestType&&hasMatchRequestUrlString)?{??
  • ????????????????[operation?cancel];??
  • ????????????}??
  • ????????}??
  • ????}??
  • } ?
  • ??

    相關(guān)鏈接:

    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

    轉(zhuǎn)載于:https://www.cnblogs.com/xieyulin/p/7060529.html

    總結(jié)

    以上是生活随笔為你收集整理的AFNetworking 3.1.0 使用中某些知识点讲解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。