NSURLErrorDomain Code = -1004 für einige Sekunden nach dem Start der App
Ich bin immer "NSURLErrorDomain Code=-1004" - Fehler mit Alamofire API-Aufrufe,
aber nur für wenige Sekunden nachdem die app gestartet (oder nahm ein rest für ein paar Minuten, während die app geöffnet und einen Aufruf nach, dass)
Wenn ich versuche, den gleichen Anruf nach wenigen Sekunden, alles funktioniert einwandfrei.
Ich suchte alle Stack-Überlauf Fragen und überprüft alle möglichen Ursachen unten:
- Kein problem mit Internet-Verbindung
- "App-Transport-Sicherheit-Einstellungen" korrekt sind und der server ist mittels https (ich habe auch versucht "NSAllowsArbitraryLoads=true", aber das hat nicht geholfen)
- APIs gut funktioniert
Mein Gefühl ist, dass immer die Netzwerk-Einstellungen dauert nur wenige Sekunden und wenn ich einen API-Aufruf, bevor das erledigt ist, es nur nicht sofort. ODER.. ich bin mit einem Websocket im hintergrund, die einen Zusammenhang haben könnte?
FEHLER: Error Domain=NSURLErrorDomain Code=-1004 "es Konnte keine Verbindung zum server." UserInfo={NSUnderlyingError=0x137d39380 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={NSErrorPeerAddressKey={Länge = 16, capacity = 16, bytes = 0x100201bb341a9f540000000000000000}, _kCFStreamErrorCodeKey=-2200, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=[GEFILTERT], NSErrorFailingURLKey=[GEFILTERT], _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2200, NSLocalizedDescription=es Konnte keine Verbindung zum server.}
Irgendwelche Vorschläge?
AKTUALISIERT
Gefunden, die app macht das 4-Anfragen auf Start, und 1 oder 2 von Ihnen nach dem Zufallsprinzip ausfällt, und ich habe Nginx access-und error-log und es gibt kein Protokoll für die fehlgeschlagene Aufrufe an alle.
InformationsquelleAutor der Frage Sebastian Kim | 2016-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wir haben das gleiche Problem hier mit Nginx 1.10.0 (und 1.9.15), iOS 9.3.1 die Verwendung von HTTP/2 mit TLS 1.2.
Das Problem geht Weg mit HTTP/1.1 und es arbeitet auch mit HTTP/2 in der Nginx-version bis 1.9.14.
InformationsquelleAutor der Antwort Adrian Schönig
Nginx 1.11.0 Mainline ist jetzt verfügbar mit der fix enthalten bereits in diesem Thema erwähnt;
Habe es getestet und für mich ist dieses release funktioniert nun wieder richtig.
InformationsquelleAutor der Antwort EricH206
Wie es scheint, ein bestätigter Fehler in nginx 1.10. Ein Thema, über das es sein kann gefunden auf der bug-tracker von nginx an https://trac.nginx.org/nginx/ticket/979. Die aktuelle Ausgabe finden Sie unter https://trac.nginx.org/nginx/ticket/959
Möchten Sie vielleicht erwägen, Umstellung auf die 1,9-Zweig, der die releases an, die die Arbeit machen. Hoffentlich nginx wird release eine version 1.10.1 bald welches keine diesen bug.
Das Problem tritt nur auf iOS; Android, Windows und OSX selbst scheinen keine Probleme zu haben in Verhandlungen über eine gültige http2-Verbindung.
InformationsquelleAutor der Antwort Rogier Slag
Kann ich auch bestätigen, dass die nginx-1.9.15 nicht richtig funktioniert. Einige Anrufe bekam immer "es Konnte keine Verbindung zum server", und nach dem wiederherstellen nginx 1.9.12 funktioniert alles einwandfrei.
InformationsquelleAutor der Antwort Kimdv
Diese sind die Schritte, die ich versuchen würde, zu Folgen:
3) konfigurieren Sie ein alamofire-manager und ändern von timeout (für diesen Schritt habe ich
code schreiben):
(also mit diesem letzten Schritt der nächste alamofire Anrufe können beispielsweise sein:
alamofireManager.request(etc....
)dont geschah nichts, um Ihren swift-code falsch sind, versuchen Sie,
stellen Sie Ihre web-server-Parameter..
InformationsquelleAutor der Antwort Alessandro Ornano
Problem gelöst!!!
Versionen:
Wenn die config so:
Habe das gleiche problem wie du.
Aber !!!
Wenn die config so:
Problem gelöst!!
InformationsquelleAutor der Antwort goodspb