Domanda

Stiamo costruendo un'app iOS che utilizza AFNetworking per connettersi a un server che esegue Tornado.Il server include l'intestazione Cache-Control: private, max-age=900 nella risposta.Quando si esegue il server sulla mia macchina locale, posso dire che l'AFNetworking utilizza i valori memorizzati nella cache poiché non sono ricevute richieste ricevute dal server su richieste ripetute dall'app.Quando implementiamo lo stesso server Tornado alla macchina di prova, ogni richiesta dall'app si traduce in una richiesta ricevuta sul server, ignorando il valore memorizzato nella cache.

L'unica differenza tra le due configurazioni è l'URL del server e il fatto che il server di test è accessibile tramite una connessione HTTPS, mentre il LocalHost utilizza HTTP.HTTPS influisce sulla memorizzazione nella cache mediante la lavorazione dell'afnetworking e, in tal caso, come possiamo ottenere la lavorazione dell'afnet per rispettare l'intestazione della cache?

È stato utile?

Soluzione

Non sei sicuro se sarà alcun aiuto, ma qui è comunque: L'AFNetworking utilizza NsurlConnection che utilizza la cache condivisa NsurlCache. Afnetworking assolutamente trasparente nella cache riguardo e non fa nulla di specifico. Le mie richieste sono HTTPS e stavano memorizzando nella cache.

Direttive di risposta alla cache-Control Consentono a un server di origine per sovrascrivere la scacchi predefinita di una risposta: privato Indica che tutto o parte del messaggio di risposta è destinato a un singolo utente e non deve essere memorizzato nella cache condivisa. Ciò consente a un server di origine di dichiarare che le parti specificate del La risposta è intesa per un solo utente e non sono una risposta valida per richieste da parte di altri utenti. Una cache privata (non condivisa) può cache la risposta. http://www.w3.org/protocols/RFC2616/RFC2616-SEC14.html# SEC14.9.1

Se accettabile, prova a modificare la politica in pubblico. Registra le intestazioni sulla risposta dall'app e guarda la tua cache.DB e vedi se infatti qualcosa è nella cache lì.

Prova a configurare la cache condivisa - qualcosa sulla riga di

int cacheSizeMemory = 1*1024*1024; // 4MB
int cacheSizeDisk = 100*1024*1024; // 100MB
[[NSURLCache sharedURLCache] setMemoryCapacity:cacheSizeMemory];
[[NSURLCache sharedURLCache] setDiskCapacity:cacheSizeDisk];
.

Un altro buono Leggi su questo qui http://petersteinberger.com/blog/2012/nsurlcache-use. -a-disk-cache-as-of-ios5 /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top