Alamofire - NSURLCache funktioniert nicht?

8

Ich setze meinen Cache wie folgt

%Vor%

Anfrage mit Cache-Richtlinie erstellen

%Vor%

Erstellen Sie eine Anfrage und erhalten Sie eine Antwort mit folgendem Cache-Control private, max-age=60

Versuchen Sie dann, den Cache zu überprüfen

%Vor%

Wert ist null

Irgendwelche Gedanken?

    
aryaxt 05.01.2015, 18:33
quelle

6 Antworten

9

Ich habe schließlich Cache-Control als private im Header meiner Anfrage hinzugefügt und es funktioniert jetzt. Sie müssen den Cache nicht einmal manuell überprüfen, Alamofire erledigt das für Sie.

%Vor%     
aryaxt 06.01.2015, 00:05
quelle
17

Ich war in der Lage, Seiten manuell zu cachen, indem ich sie wie folgt in den sharedURLCache schrieb:

%Vor%

NSURLCache scheint die Header zu respektieren, die vom Server gesendet werden , auch wenn Sie das Gegenteil überall in Ihrem Code konfigurieren.

Die Wikipedia-API sendet zum Beispiel

%Vor%

Was bedeutet: Muss nach 0 Sekunden erneut validiert werden.
Also sagt NSURLCache: "OK, ich werde nichts zwischenspeichern."

Aber durch manuelles Speichern der Antwort auf den Cache funktioniert es. Zumindest auf iOS 8.2.

Fast habe ich meine Gedanken verloren. :)

    
Frank R 01.04.2015 16:54
quelle
2

[Schnelle Lösung zum Auflösen des Ablaufs von NSURLcache]

Ich denke, dass das Hauptproblem hier ist: ReturnCacheDataElseLoad .

@arayax hat dir die Antwort gegeben, die das wahrscheinlich beheben wird, aber meine Lösung wäre etwa so:

Da ich Alamofire for Network Anfragen verwende, habe ich meine Konfiguration eingestellt:

%Vor%

Und wenn ich eine Anfrage mache, prüfe ich die Internetverbindung, wenn es wahr ist, dann lösche NSURLCache, so dass Alamofire gezwungen wird, eine Anfrage auf dem Server und nicht aus dem Cache zu stellen:

%Vor%

Ich hoffe, das wird helfen, vielleicht für andere Probleme mit NSURLCache:)

    
Elvis Rudonja 28.03.2016 05:43
quelle
1

Für mich war es Pragma → no-cache nach dem Entfernen alles funktioniert.

    
Husyn 17.01.2017 04:20
quelle
0

So habe ich den Cache mit Alamofire 4 und swift 3 (Halbvolle Funktion als Referenz) arbeiten lassen:

%Vor%     
yehyatt 08.05.2017 14:00
quelle
0

Ich habe festgestellt, dass URLCache keine Antworten speichert, die größer als 5% (1/20) der Kapazität sind.

Der Standardcache hat Speicherkapazität = 512000, Speicherantworten größer als 25600 werden nicht gespeichert.

Als eine Lösung erweitern Sie die Kapazität

    
Igor Palaguta 27.03.2018 11:16
quelle

Tags und Links