Système de cache pour serveur proxy
Bonjour à tous,
Je dois réaliser un serveur proxy avec, entres autres, un système de mise en cache des données.
Je rencontre un problème cependant. Quand je récupère une donnée mise en cache, il me renvoie du texte brut plutôt que du HTML. Du coup, le navigateur ne m'interprète pas le code et l'affiche de manière brute.
Voici en exemple l'index de Google.fr après mise en cache !
Ma classe cache :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| public class Cache
{
private Hashtable cache;
public Cache()
{
cache = new Hashtable();
}
public void addToCache(String address, byte[] response)
{
if (!cache.containsKey(address))
{
cache.put(address,response);
}
}
public byte[] getFromCache(String address)
{
return (byte[]) cache.get(address);
}
public boolean isCached(String address)
{
return cache.containsKey(address);
}
} |
Et voici le code dans le thread d'exécution, dans le cas où la donnée a été mise en cache :
Code:
1 2 3
| byte by[] = cache.getFromCache(urlToCall);
out.write(by); //out est un objet de type DataOutputStream
out.flush(); |
Je vous avoue que je sèche un peu sur le problème. Peut-être une en-tête HTTP à modifier, mais comment...