草庐IT

NSUrlSession

全部标签

ios - 我们是否应该为所有不同的可下载文件创建不同的唯一 session 标识符 - swift

我是IOS编程新手。我想创建一个示例应用程序,允许用户从我的服务器下载许多文件。例如,我有10个文件,那么我是否应该调用方法letconfiguration=URLSessionConfiguration.background(withIdentifier:"firstTask")10次,但标识符与第一个文件withIdentifier:"firstTask"不同和第二个文件应该是withIdentifier:"secondTask"?。原因是我想让用户下载相同的文件名,然后我只用其他名称修改withIdentifier:""。那正确吗?请给我一些建议。其他问题:我们如何使具有特定标识

swift - 使用 Generics/Codable w/API 响应 204 NO CONTENT

我正在使用URLSession的泛型和可编码。当我收到来自API的响应时,我检查状态是否在200-299范围内并像这样解码数据guardletdata=data,letvalue=try?JSONDecoder().decode(T.self,from:data)else{returncompletion(.error("CouldnotdecodeJSONresponse"))}completion(.success(value))然后将其传递给完成处理程序,一切正常。我有一个新的端点我也必须POST但是,这个端点返回一个没有内容主体的204。因此,我无法解码响应,就像我无法传入类型

swift - NSURLSession 不遵循重定向

对于一个屏幕抓取项目,我在Swift中使用NSURLSession来读取HTML页面。但是已经开始失败了,因为返回的页面重定向到一个新的网页,而我的代码没有遵循这一点。如果没有为session设置委托(delegate),我认为默认情况下重定向会起作用。但两种情况都没有重定向。这是我的测试项目:importCocoa@NSApplicationMainclassAppDelegate:NSObject,NSApplicationDelegate,NSURLSessionTaskDelegate{@IBOutletweakvarwindow:NSWindow!funcURLSession

ios - NSURLSession.sharedSession 在运行时显示旧数据?

我遇到了一个非常奇怪的问题。我正在像这样使用session.DataTaskWithURL:lettask=session.dataTaskWithURL(url!,completionHandler:{data,response,error->Voidinif(error!=nil){returncompletionHandler(nil,error)}else{ifletjsonResult=NSJSONSerialization.JSONObjectWithData(data,options:NSJSONReadingOptions.MutableContainers,error

ios - NSURLSession().dataTaskWithRequest(...) 不能抛?

我有这个函数负责API调用(makeAPICall),当httpResponse.statusCode!=200。问题是,据我所知,NSURLSession().dataTaskWithRequest(...)不能抛出。这是正确的吗?如果是这样,是否有一些解决方法?还是我应该做一些完全不同的事情? 最佳答案 由于dataTaskWithRequest是一个异步操作,它的错误处理是通过完成处理程序来促进的。如果是抛出,则在操作完成时很难处理错误。因此,您应该在完成处理程序中处理错误情况。如果您想在完成时抛出自己的错误,那是可能的,但有

ios - AuthenticationMethodServerTrust 在 iOS 9 中为 nil

我一直在尝试使用NSURLSession在我的iOS8+应用程序中实现一种进行公钥固定的方法。我所做的只是实现委托(delegate)方法didReceiveChallenge并获取challenge.protectionSpace.authenticationMethod并检查它是否等于NSURLAuthenticationMethodServerTrust。如果它等于NSURLAuthenticationMethodServerTrust,我会检查证书并将其与我的本地副本进行比较。这在iOS8上运行良好,但在iOS9上我没有收到等于NSURLAuthenticationMethod

ios - 在 WatchOS2 中使用 NSURLSession 后台任务

想知道我们将如何在watchOS2中使用NSURLSession后台任务。我想在并发症唤醒时生成后台下载。我不清楚在哪里可以找到application:handleEventsForBackgroundURLSession。WatchKit扩展的哪一部分会被唤醒,我从哪里得到这个回调?这部分在文档中不是很清楚。 最佳答案 Iwanttospawnabackgrounddownloadwhenevercomplicationswakeup.如果您希望在复杂Controller中异步获取数据,您会发现itisunreliable,asw

ios - 同步取数据 NSOperationQueue 或 NSURLSession

在我的应用中,当我们点击登录按钮时,我们必须进行3次服务器调用。1)willmakeaservercalltogetanOAuthtokenforusercredentials2)withthetokenfrom(1)wewillgetuserprivileges3)withthetokenfrom(1)andwiththevalidprivilegefrom(2)wewillgetthedatatobedisplayedonthepageafterlogininatableview.我对为此采取的方法感到困惑。使用operationqueue添加依赖项或使用NSURLSession任

swift - 用于在 UICollectionView 中下载和显示图像的 UIImageView 扩展

我制作并扩展了UIImageView,它允许我异步下载图像,然后根据它们的特定索引(CollectionView中的IndexPath)将它们分配给它们的ImageView。效果很好,唯一的问题是:我在快速滚动和停止时仍然看到显示的错误图像。谁能帮帮我?这是我的代码://UIImageView扩展:extensionExtendedUIImageView{funcdownloadFrom(linklink:String,contentModemode:UIViewContentMode,imageIndex:Int){if(NSFileManager.defaultManager().

swift - URLSession downloadTask 在后台运行时的行为?

我有一个应用程序需要下载一个可能相当大的文件(可能大到20MB)。我一直在阅读URLSessiondownloadTasks以及当应用程序进入后台或被iOS终止时它们如何工作。我希望继续下载,根据我的阅读,这是可能的。我找到了一篇博文here详细讨论了这个主题。根据我所读到的内容,我首先创建了一个如下所示的下载管理器类:classDownloadManager:NSObject,URLSessionDownloadDelegate,URLSessionTaskDelegate{staticvarshared=DownloadManager()varbackgroundSessionCo