Wie kann NSURLSession verwendet werden, um festzustellen, ob sich die Ressource geändert hat?
Ich verwende NSURLSession, um eine JSON-Ressource von einem HTTP-Server anzufordern. Der Server verwendet Cache-Control, um die Zeit zu begrenzen, die die Ressource auf den Clients zwischengespeichert wird.
Das funktioniert prima, aber ich möchte auch ein deserialisiertes JSON-Objekt im Arbeitsspeicher zwischenspeichern, da häufig darauf zugegriffen wird, und dabei weiterhin die in NSURLSession integrierten HTTP-Zwischenspeichermechanismen nutzen.
Ich denke, ich kann ein paar HTTP-Antwortheader speichern:Content-MD5
, Etag
, undLast-Modified
zusammen mit dem deserialisierten JSON-Objekt (ich verwende diese 3 Felder, da mir aufgefallen ist, dass nicht alle HTTP-Server @ zurückgebeContent-MD5
, sonst würde das alleine ausreichen). Wenn ich das nächste Mal eine Antwort für das JSON-Objekt erhalte, kann ich das zuvor deserialisierte JSON-Objekt wiederverwenden, wenn diese drei Felder identisch sind.
Ist dies eine robuste Methode, um zu bestimmen, dass JSON deserizlied noch gültig ist. Wenn nicht, wie kann ich feststellen, ob das deserialisierte Objekt auf dem neuesten Stand ist?