Frage

Wir bauen eine iOS-App auf, die AfNetwork verwendet, um eine Verbindung zu einem Server herzustellen, der Tornado läuft.Der Server enthält den Header-Cache-Control: private, max-age=900 in der Antwort.Wenn Sie den Server auf meinem lokalen Computer ausführen, kann ich sagen, dass AfNetworking die zwischengespeicherten Werte verwendet, da es keine Anforderungen, die vom Server auf wiederholten Anforderungen von der App empfangen werden.Wenn wir denselben Tornado-Server auf der Testmaschine bereitstellen, führt jede Anforderung aus der App zu einer auf dem Server empfangenen Anforderung und ignoriert den zwischengespeicherten Wert.

Der einzige Unterschied zwischen den beiden Setups ist die URL des Servers und die Tatsache, dass der Testserver über eine HTTPS-Verbindung zugegriffen wird, während der LocalHost HTTP verwendet.Betrifft HTTPS auf das Caching durch AfNetworking, und wenn ja, wie können wir AFNetworks dazu bringen, den Cache-Header zu respektieren?

War es hilfreich?

Lösung

Nicht sicher, ob es irgendwelche Hilfe sein wird, aber hier ist es trotzdem: Die afnetworking verwendet nsurlconnection, die nsurlcache Shared Cache verwendet. Afnetworking absolut transparent im Cache betrachten und tut nichts bestimmtes. Meine Anfragen sind HTTPS und waren einfach in Ordnung.

Cache-Control-Antwort-Richtlinien ermöglichen es einem Origin-Server, die Standardgaderlichkeit einer Antwort zu überschreiben: Privatgelände Gibt an, dass das gesamte oder ein Teil der Antwortnachricht für einen einzelnen Benutzer bestimmt ist, und darf nicht durch einen gemeinsam genutzten Cache zwischengespeichert werden. Dadurch kann ein Origin-Server angeben, dass die angegebenen Teile der Die Antwort ist für nur einen Benutzer bestimmt und sind keine gültige Antwort für Anfragen von anderen Benutzern. Ein privater (nicht gemeinsam genutzter) Cache kann die Antwort zwischenspeichern. http://www.w3.org/probandocols/rfc2616/rfc2616-sec14.html# sec14.9.1

Wenn Sie akzeptabel versuchen, die Politik auf die Öffentlichkeit zu ändern. Protokollieren Sie die Header auf Antwort von der App und schauen Sie sich Ihren Cache.db an und sehen Sie, ob in der Tat etwas zwischengespeichert ist.

Versuchen Sie, den gemeinsamen Cache zu konfigurieren - etwas in den Zeilen von

generasacodicetagpre.

Ein weiteres Gut lesen Sie hier http://petsteinberberger.com/blog/2012/nsurlcache-us. -a -A-Cache-Cache-as-of-iOS5 /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top