Ich denke, Sie sollten den Wert von backgroundSession.timeoutIntervalForResource mehr als reqTimeInterval setzen.
%Vor%Hoffe, das wird dir helfen.
@Warewolf Ich habe Ihre .m-Datei heruntergeladen und in mein Demo-Projekt integriert.
scheint alles in Xcode 9.1 und iOS 11.1 zu funktionieren
Ich kann in wenigen Sekunden eine Antwort bekommen.
Hier unten ist die Ausgabe Ihres Codes ..
%Vor%Setzen Sie die timeoutIntervalForRequest-Eigenschaft für die backgroundSession.
Fall 1: Könnte Hilfe sein, ich rief lokale Serververbindung an und erhielt diesen Fehler. Ich habe ein anderes Netzwerk in meinem Gerät und Telefon verwendet. Als ich beide mit dem gleichen WLAN verbunden habe, hat es funktioniert.
Fall 2: Ich hatte den Fehler mit Code = -1001 "Die Anfrage abgelaufen.". Ich habe ein paar Dinge ausprobiert. Nichts hat geklappt. Schließlich fand ich heraus, dass das Problem in meinen Parametern war, die ich in den Anfragekörper zum Server sendete, die vom falschen Format waren (Wert war gut, aber Typ war falsch). Das war der Grund, warum die Anfrage abgelaufen war, weil der Server sie nicht verarbeiten konnte. Du kannst das überprüfen, wenn nichts anderes für dich funktioniert.
Falls Sie das Problem nicht gelöst haben, versuchen Sie es mit der GCDs Abstraktion %code%
Ich verwende eine URL-Hintergrundsitzung für das Hochladen von PDF als Datenstrom, indem ich die ios-Version & gt; 9.0. Ich setze Timeout-Intervall von 300 Sekunden. Es funktioniert überhaupt nicht. Nach 10 Sekunden wird ein Timeout-Fehler angezeigt.
Code ist unten angegeben
%Vor%Anfrage zum Hochladen des Datenstroms.
%Vor%delegieren
%Vor%Wenn das Internet gut funktioniert, ist es ansonsten gut. Nach 10 Sekunden bekomme ich
Fehler Fehler Domäne = NSURLErrorDomain Code = -1001 "Zeitüberschreitung der Anforderung." UserInfo = {NSErrorFailingURLStringKey = Liste , NSErrorFailingURLKey = Ссылка , _kCFStreamErrorDomainKey = 4, _kCFStreamErrorCodeKey = -2104, NSLocalizedDescription = Die Anfrage ist abgelaufen.}
Weitere Informationen zu diesem Problem,
Nachdem ich meinen Code in ios 9.3 simulator überprüft habe, wartet er auf die Verbindung. Dann wird weiter hochgeladen. Ich habe es nach 4 Minuten Wartezeit überprüft, es funktioniert. Aber wenn ich diesen Code auf ios 11.0.1 ausführe, kommt es nach 10 Sekunden zu einem Timeout. Was sollte ich tun müssen, um es zu erreichen? Ich habe es auch versucht
%Vor%aber es hat keine Wirkung.
Sie können die folgende Demo-Datei verwenden: -