nsurlsession用于循环中的多个请求

杰明·拉瓦尔

我一直在尝试下载image / txt,但是我需要这样做,直到该URL存在并下载该image / txt文件,所以我继续调用同一方法,并且在设置调试点时看到了这一点线程队列

如果url正确,那么我在调试导航器中看不到任何队列,因为它没有再次调用方法。我将AFNetworking库指向相同的库,但是我想它的工作方式与我在NSURLSession中执行的方法相同,对吗?

案例:-我检查网址是否存在,因此如果存在网址,则先加载两个网址(time.txt和image.png),否则调用WebService(XmlParser)并继续检查以下文件的网址。

time.txt + image.png 

要么 

tryagain.txt

显示存在的任何一个。

还检查了这个AFNetworking问题,但是它没有帮助,因为我不想增加操作数量。我想加载任何存在的文件。

因为无论在AFNetworking / NSURLSession中成功还是失败,操作都会完成。


-(无效)下载
{
 NSString * imageUrl = [NSString stringWithFormat:@“%@”,txtNumber.text];
       
 NSURLSessionConfiguration * sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
        
 NSURLSession * session = [NSURLSession sessionWithConfiguration:sessionConfig
                                               委托人:自己
                                          RepresentativeQueue:nil];
        
 NSURLSessionDownloadTask * getImageTask = [会话downloadTaskWithURL:[NSURL URLWithString:imageUrl]
                        
                                  completeHandler:^(NSURL *位置,
                                                      NSURLResponse *响应,
                                                      NSError *错误)
                        {
                           UIImage * downloadedImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:location]];

                                      dispatch_async(dispatch_get_main_queue(),^ {
                                          //处理图片
                                          如果(downloadedImage)
                                          {
                                              carImgView.image = downloadedImage;
                                              结果= TRUE;
                                          }
                                          其他
                                          {
                                              结果=假;
                                              [自我尝试];
                                          }
                                      });
                                  }];
        
        [getImageTask简历];
}

-(void)tryagain
{
    NSString * strImg = [[NSString stringWithFormat:@“%@”,gblPolicyNo] stringByAppendingString:FilePolStatus];
    
    NSString * apiImage = [NSString stringWithFormat:@“ http://moviepoint.info/%@/%@”,FolderPolStatus,strImg];
    
    NSURL * aImgUrl = [NSURL URLWithString:apiImage];
    // 2
    NSURLSessionConfiguration * sessionConfig =
    [NSURLSessionConfiguration defaultSessionConfiguration];
    
    // 3
    tryAgainSession = [NSURLSession sessionWithConfiguration:sessionConfig
                                           委托人:自己
                                      RepresentativeQueue:nil];
    
    
    // 1
    getTryAgainTask = [tryAgainSession downloadTaskWithURL:aImgUrl
                    
                    
                              completeHandler:^(NSURL *位置,
                                                  NSURLResponse *响应,
                                                  NSError *错误)
                    {
                        
                        // 2
                        UIImage * downloadedImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:location]];
                        // 3
                        dispatch_async(dispatch_get_main_queue(),^ {
                            //处理图片
                            如果(downloadedImage)
                            {
                                [policyImgWebView loadData:[NSData dataWithContentsOfURL:位置] MIMEType:无textEncodingName:无baseURL:无];
                                NSLog(@“是”);
                            }
                            其他
                            {
                                NSLog(@“ NO”);
                                [self performInBackground];
                            }
                        });
                    }];
    
    // 4
    [getTryAgainTask简历];
    
}

如果我做错了,请纠正我,并帮助我解决此问题。

杰明·拉瓦尔

通过采取一个全局NSURLSession解决

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

nodejs循环中的多个http请求

来自分类Dev

for循环中有多个ajax请求

来自分类Dev

嵌套 for 循环中的多个异步请求

来自分类Dev

反应-循环中有多个API请求

来自分类Dev

在多个提取请求中的for循环中使用提取

来自分类Dev

NSURLSession跟踪多个获取请求?

来自分类Dev

在循环中请求 JSON

来自分类Dev

for循环中的多个语句

来自分类Dev

for循环中的多个绑定

来自分类Dev

Python请求模块,如何在for循环中发出多个请求?

来自分类Dev

循环中的草率呼叫请求

来自分类Dev

循环中的Scrapy通话请求

来自分类Dev

依次在for循环中发送多个axios请求(一个接一个)

来自分类Dev

在for循环中插入多个记录

来自分类Dev

在for循环中运行多个蜘蛛

来自分类Dev

在for循环中声明多个函数

来自分类Dev

for循环中的多个变量,Javascript

来自分类Dev

在for循环中插入多个记录

来自分类Dev

在循环中创建多个变量

来自分类Dev

for 循环中的多个数组

来自分类Dev

如何在for循环中生成函数并将其用于多个输入

来自分类Dev

在for循环的每个循环中设置多个对象

来自分类Dev

for循环中的AJAX请求返回错误的结果

来自分类Dev

在for循环中发送发布请求

来自分类Dev

Axios获取请求处于无限循环中

来自分类Dev

for循环中的AJAX请求返回错误的结果

来自分类Dev

在循环中合并请求的表

来自分类Dev

在 while 循环中检查请求响应

来自分类Dev

NSURLSession循环