草庐IT

Nsurlsession

全部标签

ios - 如果任务被取消,则不执行该 block

我有MainViewController->ThumbnailViewController->ImageFullScreenViewController。顾名思义,我有一个主屏幕,从主屏幕转到显示图像集合的屏幕,并在选择图像时以全屏方式打开图像。在ThumbnailViewController中,我按如下方式下载图片privatefuncgetImages(){self.galleryImages.removeAll()forurlinurls{lettask=NSURLSession.sharedSession().dataTaskWithURL(url){(data,respons

ios - 我应该为这个完整的场景使用操作队列吗?

我需要执行一个场景,步骤如下:使用用户提供的一些搜索参数进行网络调用然后,解析其JSON响应并创建模型实体然后,对于创建的每个实体,如果它有关联的图像URL,则调用相应的服务来下载此类图像,并在下载完成时将其显示在UICollectionView中。在下载我需要的N个图像时,我需要处理并发网络调用。用户应该可以取消当前的搜索流程并开始新的搜索流程。此外,我应该考虑到某个图像的单元格尚未显示或已出队。所以,我的问题是:哪种方法最好?直接使用URLSession和URLSessionDownloadTask执行第一次网络调用(非并发)和JSON响应解析,并使用Operation和Opera

ios - NSURLCache 对早于 max-age 的请求使用缓存

我一直在努力思考NSURLCache是怎么回事。基本上,我连接的服务器没有设置任何缓存控制header...所以按照各种指南和苹果文档(即https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/URLLoadingSystem/Concepts/CachePolicies.html)我在willCacheResponse委托(delegate)中设置我自己的缓存控制header,然后返回它完成处理程序中的修改响应。苹果文档和我读过的资源似乎表明这应该有效。但我看到的是缓存数据在根据最大年龄过期

ios - 从 URL 和缓存中一张一张地加载和显示图像

我正在使用SDWebImage库在带有页面控件的ScrollView中显示图像。如何一张一张地下载图片并显示出来。假设我有4个URL:url1、url2、url3、url4所以我想先显示url1然后...2,3,4..等等...2,3,4应该在后台加载,直到没有下载占位符图像显示在那里。下面是我的for循环内部代码,我试过它完美吗?NSString*serverImgicon=;dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{NSURL*url=[NSURLURLWithStrin

ios - NSURLSession 后台 session 的正确用例是什么?

在this的评论中answer我正在讨论backgroundTasks,最终导致:将backgroundTasks用于与下载/上传无关的任何事情。对于上传/下载,使用NSURLSessions的backgroundSessions。然后我发表了另一条评论,询问为什么不对所有类型的请求都使用后台session,并被告知:ForregularRESTcalls,backgroundsessionsaremuchlessconvenient,andgenerallynotwhatyou'dwant.They'renotageneralpurposetoolforeveryrequest;th

ios - UIImage 未在 URLSession 数据任务后加载

我在下载图片时遇到了困难。我正在使用来自Firebase的图像URL下载jpeg,并在mapView标注中使用该图像。目前,标注以正确的尺寸显示,但没有图像或字幕。当我手动传入图像Assets时,它工作得很好。图片URL完美保存到newDog对象中。当我调试和检查图像时,它出现在内存中但看起来是空的。我认为这可能与在图像下载完成之前加载标注View有关?这是我的viewDidLoad:overridefuncviewDidLoad(){super.viewDidLoad()self.map.mapType=.standardself.map.showsUserLocation=true

ios - 如何查看当前 URLSessionDownloadTask 的恢复能力?

目前我正在努力从服务器下载一个文件,而且效果很好。我的问题是在实际下载开始之前我怎么知道url是否具有恢复能力?下面是一些代码片段,classDownloader:NSObject,URLSessionDownloadDelegate{/*SOMEPROPERTIES&DECLARATIONS*/overrideinit(){super.init()letbackgroundSessionConfiguration=URLSessionConfiguration.background(withIdentifier:url.absoluteString)backgroundSession

ios - Alamofire/NSURLSession 缓存与私有(private)缓存控制和 max-age

我不确定我是否做错了什么,但是设置urlRequest.cachePolicy=.useProtocolCachePolicy时缓存不起作用并将缓存header设置为privatewithmax-age"Cache-Control"="private,max-age=86400";useProtocolCachePolicy应该与private一起使用吗?或者我需要手动将其覆盖为公共(public)? 最佳答案 我尝试了以下对我来说效果很好的代码,使用缓存策略:NSURLRequestUseProtocolCachePolicy。它

ios - URLSession 数据任务返回 nil 响应 - 404 页面未找到

我正在尝试在Swift4中使用URlSession调用https请求。我没有收到错误,但收到了nil响应。我尝试在plist中添加ATS。添加了TLS版本、NSIncludesSubdomainskey等。仍然不起作用。不确定可能是什么问题。有帮助吗?下面是我的代码:url=URL(string:"https://quickweb.support.qvalent.com/OnlinePaymentServlet3")leturlRequest=URLRequest(url:url!,method:method,body:data.toEncodedData(),cachePolicy:

ios - 使用 NSURLSessionDataTask 链式请求

我要使用NSURLSessionDataTask执行请求链。当第一个请求完成时,我需要使用第一个请求中的responseData来执行另一个多重请求。最后,我得到NSArray并提供给TableView。怎么做?如下所示,它不起作用。NSURLSessionConfiguration*config=[NSURLSessionConfigurationdefaultSessionConfiguration];AFURLSessionManager*manager=[[AFURLSessionManageralloc]initWithSessionConfiguration:config]