2017-09-20 8 views
2

Actuellement, je travaille sur le téléchargement d'un fichier à partir du serveur, et cela fonctionne bien. Comment vérifier la capacité de reprise de URLSessionDownloadTask en cours?


ma question est comment puis-je savoir que l'URL a reprendre capacité ou non avant le début du téléchargement?
ci-dessous est une extrait de code,

class Downloader:NSObject,URLSessionDownloadDelegate { 
    /* 
    SOME PROPERTIES & DECLARATIONS 
    */ 

    override init() { 
     super.init() 
     let backgroundSessionConfiguration = URLSessionConfiguration.background(withIdentifier: url.absoluteString) 
     backgroundSessionConfiguration.networkServiceType = .default 
     self.defaultSession = URLSession(configuration: backgroundSessionConfiguration, delegate: self, delegateQueue: OperationQueue.main) 
    } 

    func start(_ block:DownloaderCompletionHandler?) { 
     guard self.input == nil else { return } 
     guard self.output == nil else { return } 
     if let data = self.resumableData { 
      self.downloadTask = self.defaultSession.downloadTask(withResumeData: data) 
     }else { 
      let request = URLRequest(url: self.input!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 0.60) 
      self.downloadTask = self.defaultSession.downloadTask(with: request) 
     } 
     self.downloadTask.resume() 
    } 
    func pause() { 
     self.downloadTask.cancel { (data) in 
      self.resumableData = data 
     } 
    } 
} 

s'il vous plaît, me guid sur cette situation. si vous envoyez une demande avec plage en httpHeaders et recevoir un code d'état 206 en réponse, vous pouvez reprendre le téléchargement MERCI À L'AVANCE

+0

Que voulez-vous dire par la capacité de CV? Parlez-vous de la possibilité de reprendre après l'interruption du téléchargement? – user1046037

+0

@ user1046037, oui, j'ai modifié cette partie de la question. Pouvez-vous montrer un exemple? – Vats

+0

Tous les 'URLSessionTask' peuvent être suspendus et repris. Appelez simplement la fonction 'suspend' /' resume'. Essayez-le pour vous-même Je ne l'ai pas essayé moi-même. Pour autant que je sache, il n'a rien à une URL spécifique – user1046037

Répondre

0

. sinon, le téléchargement ne peut pas être repris.

en savoir plus sur ce here

+0

salut, merci pour la réponse instantanée, va essayer de vous donner des résultats. – Vats

+0

oui j'ai obtenu le code d'état 206, mais ma question est d'obtenir cette information pendant que le téléchargement est en cours. Y a-t-il un moyen pour cela? – Vats