0

Je rencontre un comportement étrange lorsque j'utilise un uploadTask pour un URLSessionConfiguration.background. Mon délégué personnalisé implémente toutes les méthodes de délégué qui appartiennent à URLSessionDelegate, URLSessionTaskDelegate et URLSessionDataDelegate. Tous ont une instruction print indiquant que la méthode a été appelée.La tâche de téléchargement d'arrière-plan URLSession continue de se réinitialiser

J'essaie de télécharger cinq images sur un serveur, chacune d'entre elles a sa propre session avec un identifiant correspondant à l'identifiant de l'image.

Le problème est que lors du téléchargement en utilisant une connexion très lente « bord », la progression du téléchargement réinitialisera avant d'atteindre 100% Cela se produit chaque fois que didFinishCollectingMetrics est appelé comme vous pouvez le voir ici: Data

Cela ne se produit pas tous le moment où vous utilisez une connexion lente, mais seulement une partie du temps.

Quelqu'un at-il des idées sur ce qui se passe ici?

+0

avez-vous réussi à régler ce problème? – Baki

Répondre

0

Augmenter le temps de NSURLSession de la demande et des ressources:

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
[configuration setTimeoutIntervalForRequest:120]; 
[configuration setTimeoutIntervalForResource:240]; 
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration]; 

Utilisez session pour télécharger votre image

+0

@ zain-dev Merci pour la réponse. Cela ne semble pas régler le problème. J'ai essayé de régler les délais d'attente à '300', mais maintenant je reçois le message" La requête a expiré. " que je n'ai pas eu avant. – Frederik

+0

@frederik di u résoudre le problème? J'ai le même problème mais avec vidéo ascendante. Merci –

1

réseau Edge est notoirement peu fiables, et les échecs de téléchargement fréquents ne sont pas atypiques. La façon de résoudre ce problème consiste à remplacer les téléversements par fichiers entiers par des transferts groupés afin que vous puissiez poursuivre le téléchargement là où vous vous étiez arrêté, mais cela nécessite le support du serveur.