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 :
Et voici le code dans le thread d'exécution, dans le cas où la donnée a été mise en cache :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
Je vous avoue que je sèche un peu sur le problème. Peut-être une en-tête HTTP à modifier, mais comment...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 byte by[] = cache.getFromCache(urlToCall); out.write(by); //out est un objet de type DataOutputStream out.flush();
Partager