iOS開發中如何設置請求超時時間



1
NSString *baseUrl; 2 NSURL *url = [NSURL URLWithString:[baseUrl stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 3 NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; 4 AFJSONRequestOperation *jsonOper = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 5 6 } 8 failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { 9 10 }];

以上是AFN的設置請求超時時間.

 

對於SDWebImage來說

在在SDWebImageDownloader.m文件中的 downloadImageWithURL.

具體為:

1 - (id<SDWebImageOperation>)downloadImageWithURL:(NSURL *)url options:(SDWebImageDownloaderOptions)options progress:(void (^)(NSUInteger,long long))progressBlock completed:(void (^)(UIImage *,NSData *, NSError *, BOOL))completedBlock函數。

主要是:

1 - (id)initWithURL:(NSURL *)URL cachePolicy:(NSURLRequestCachePolicy)cachePolicy timeoutInterval:(NSTimeInterval)timeoutInterval;中的timeoutInterval

決定。

 

如果請求超時之后我們可以取消AFN的請求,通過以下代碼實現:

 1      // 1.創建AFN管理者
 2     AFHTTPRequestOperationManager *mange = [AFHTTPRequestOperationManager manager];
 3     
 4     // 2.發送請求
 5     [mange GET:url parameters:params success:^(AFHTTPRequestOperation *operation, id responseObject) {
 6         // 請求成功
 7         IWLog(@"請求成功");
 8         if (success) {
 9             success(responseObject);
10         }
11         
12     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
13         
14         IWLog(@"請求失敗");
15         if (failure) {
16             failure(error);
17         }
18     }];
19     
20     //3.取消請求
21     [mange.operationQueue cancelAllOperations];

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM