NSMutableURLRequest setTimeoutInterval funktioniert nicht in ios 11.0

8

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: -

ViewController.h & amp; .m

    
Warewolf 23.11.2017, 08:00
quelle

4 Antworten

3

@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%     
Nirav Kotecha 28.11.2017 11:42
quelle
0

Ich denke, Sie sollten den Wert von backgroundSession.timeoutIntervalForResource mehr als reqTimeInterval setzen.

%Vor%

Hoffe, das wird dir helfen.

    
Agula Otgonbaatar 27.11.2017 07:56
quelle
0

Setzen Sie die timeoutIntervalForRequest-Eigenschaft für die backgroundSession.

    
Anuj 27.11.2017 12:38
quelle
0
  

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 [NSURLConnection sendAsynchronousRequest:queue:completionHandler:

    
BuLB JoBs 29.11.2017 10:05
quelle