当前位置: 首页 > 知识库问答 >
问题:

循环中多个请求的nsurlsession

萧远
2023-03-14

如果url正确,我在调试导航器中看不到任何队列,因为它没有再次调用方法。我在networking库中引用了相同的内容,但我想它的工作方式与我在NSURLSession中的工作方式相同,对吗?

案例:-我检查url是否存在,所以如果存在,就加载两个url(time.txt和image.png),否则调用WebService(XmlParser)&保留以下文件的url检查。

time.txt+image.png 

or 

tryagain.txt

显示哪个存在。

-(void)downloading
{
 NSString *imageUrl = [NSString stringWithFormat:@"%@",txtNumber.text];
       
 NSURLSessionConfiguration *sessionConfig =[NSURLSessionConfiguration defaultSessionConfiguration];
        
 NSURLSession *session =[NSURLSession sessionWithConfiguration:sessionConfig
                                               delegate:self
                                          delegateQueue:nil];
        
 NSURLSessionDownloadTask *getImageTask = [session downloadTaskWithURL:[NSURL URLWithString:imageUrl]
                        
                                  completionHandler:^(NSURL *location,
                                                      NSURLResponse *response,
                                                      NSError *error)
                        {
                           UIImage *downloadedImage =[UIImage imageWithData:[NSData dataWithContentsOfURL:location]];

                                      dispatch_async(dispatch_get_main_queue(), ^{
                                          // do stuff with image
                                          if (downloadedImage)
                                          {
                                              carImgView.image = downloadedImage;
                                              result = TRUE;
                                          }
                                          else
                                          {
                                              result = FALSE;
                                              [self tryagain];
                                          }
                                      });
                                  }];
        
        [getImageTask resume];
}

-(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
                                           delegate:self
                                      delegateQueue:nil];
    
    
    // 1
    getTryAgainTask = [tryAgainSession downloadTaskWithURL:aImgUrl
                    
                    
                              completionHandler:^(NSURL *location,
                                                  NSURLResponse *response,
                                                  NSError *error)
                    {
                        
                        // 2
                        UIImage *downloadedImage =[UIImage imageWithData:[NSData dataWithContentsOfURL:location]];
                        //3
                        dispatch_async(dispatch_get_main_queue(), ^{
                            // do stuff with image
                            if (downloadedImage)
                            {
                                [policyImgWebView loadData:[NSData dataWithContentsOfURL:location] MIMEType:nil textEncodingName:nil baseURL:nil];
                                NSLog(@"YES");
                            }
                            else
                            {
                                NSLog(@"NO");
                                [self performInBackground];
                            }
                        });
                    }];
    
    // 4
    [getTryAgainTask resume];
    
}

共有1个答案

郭兴文
2023-03-14

通过获取一个全局NSURLSession解决

 类似资料:
  • 问题内容: 我正在尝试在node中制作简单的feed阅读器,并且遇到了node.js中多个请求的问题。例如,我得到的表带有如下网址: 现在,我想获取每个URL的内容。首先的想法是使用,但这不是一个好主意。最好的选择是异步执行,但我不知道如何制作。 有任何想法吗? 编辑: 我得到以下代码: 问题在于,首先是循环中每个元素的调用行“ http.get …”,并在该事件之后调用response.on(’

  • 问题内容: 我想知道为什么当我这样依次调用request.get()方法时: 我对所有请求的状态都良好,但是当我在for循环中执行该状态时,例如: 除最后一个请求外,所有请求我都得到400(错误)。 附加信息:SO上有一个相关的问题,其中提到了两种应对这种情况的方法:等待,标题。 在我的情况下 以及标题中,wait不起作用-我不知道在那里提供了什么。 更新:我正在尝试实现的特定版本: 问题答案:

  • 问题内容: 我使用jQuery发送AJAX请求,从服务器检索数据。 然后将该数据附加到元素。这应该发生5次,但总是会随机发生3、4或5次。基本上,循环有时会跳过AJAX请求,但大多数情况下都会捕获该请求。如何确保每次完成五次请求?以及跳过AJAX请求的这种随机行为的背后原因是什么?(旁注。我已经检查了请求错误,但从未警告到请求失败) 这是我的JS: ps这发生在按下按钮时。 问题答案: 不要同步进

  • 问题内容: 我必须在循环上进行一系列Ajax请求。其中约有100个。每个请求都返回一个JSONP变量。我从JSON提取数据,并将该值附加到div中。问题是我希望div以函数调用的顺序附加数据。即顺序。现在,我每次刷新页面时都会得到不同的顺序,具体取决于请求完成的顺序。这是我的代码。 当我在div中显示索引值时,每次我得到随机订单。有时是2 4 3 1 7,有时是1 5 2 7 4。我什至尝试asy

  • 我在使用Spring-SAML的webapp中看到了极其复杂和不一致的行为。 根据url模式选择两个IDP-使用CustomSAMLContextProviderImpl实现(基于url工作良好,它重定向到配置的IDP) 使用带有ExtendedMetadataManager列表的CachingMetadataManager配置了两个SAML Provider/IDP。基于此处的解释和代码示例 S

  • 问题内容: 我试图通过一次添加一天来遍历while循环,但它甚至第一次都不会访问while循环。while循环中的条件正确吗?当我测试它时,它仅在一种情况下起作用,但在我添加第二种条件时停止了。 问题答案: 它应该是