2017-01-23 1 views
2

Gibt es eine Möglichkeit, Cache für HttpClient einzurichten? Ich möchte die HttpClient-Antwort erhalten (die mit der Methode get meinen Endpunkt erreicht), aber wenn auf dem Clientgerät keine Internetverbindung besteht, möchte ich die letzte Antwort für diesen bestimmten Anruf zurückgeben. Wenn eine Internetverbindung besteht, erhält der HttpClient die Antwort (normales Verhalten) und aktualisiert den Cache durch diese neue Antwort für diesen Anruf.System.Net.Http.HttpClient Cache

Haben Sie eine Idee, dieses Verhalten in einem Kreuzplattenform-Xamarin-Forms-Projekt einzurichten?

Antwort

0

können Sie nützlich finden eine dieser Akavache Methoden:

// Attempt to return an object from the cache. If the item doesn't 
// exist or returns an error, call a Func to return the latest 
// version of an object and insert the result in the cache. 
IObservable<T> GetOrFetchObject<T>(string key, Func<Task<T>> fetchFunc, DateTimeOffset? absoluteExpiration = null); 

// Like GetOrFetchObject, but isn't async 
IObservable<T> GetOrCreateObject<T>(string key, Func<T> fetchFunc, DateTimeOffset? absoluteExpiration = null); 

// Immediately return a cached version of an object if available, but *always* 
// also execute fetchFunc to retrieve the latest version of an object. 
IObservable<T> GetAndFetchLatest<T>(string key, 
    Func<Task<T>> fetchFunc, 
    Func<DateTimeOffset, bool> fetchPredicate = null, 
    DateTimeOffset? absoluteExpiration = null); 
Verwandte Themen