Bonjour
voilà j'ai un big problem
Je génère une page que je transmet au navigateur web (en fait c un xml mais ça on s'en fout).
Sur mon ordi ça plante avec IE (6 sp1), ça marche avec Mozilla.
Sur d'autres ordi de la boîte ça marche avec IE.
(quand je dis ça marche pas, IE affiche une erreur xml invalide, et le code source c'est du binaire)
Donc je suppose que la compression peut ne pas être supportée par tous les postes de l'entreprise.
Le code de compression est :
Si je transforme en :
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
28
29 // Définie le content type text/xml response.setContentType("text/xml"); // Compression du document response.setHeader("Content-Encoding", "gzip"); // Désactive la mise en cache response.setHeader("Cache-Control", "public" ); ... // Convertisseur StringWriter strWriter = new StringWriter(); try { XMLSerializer serializer = new XMLSerializer(strWriter, new OutputFormat("xml","ISO-8859-1", false) ); serializer.serialize( xml.getFinalDocument() ); // Compression de la réponse java.util.zip.GZIPOutputStream gzos = new java.util.zip.GZIPOutputStream(response.getOutputStream()); try { gzos.write(strWriter.toString().getBytes()); } finally { gzos.close(); } } finally { strWriter.close(); }ça marche.
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 PrintWriter out = response.getWriter(); // Définie le content type text/xml response.setContentType("text/xml"); // Désactive la mise en cache response.setHeader("Cache-Control", "public" ); ... // Convertisseur StringWriter strWriter = new StringWriter(); XMLSerializer serializer = new XMLSerializer(strWriter, new OutputFormat("xml","ISO-8859-1", false) ); serializer.serialize( xml.getFinalDocument() ); out.println(strWriter.toString()); strWriter.close();
Mais le problème, c'est que le XML est très bavard et certains fichiers sont énoooOOÔOOooormes.
Donc je cherche soit à corriger le problème sur IE, y'a-t'il un header à envoyer ? parce qu'en général une page web habituelle peut être gzippée et marcher... du moins il me semble.
Ou alors en désespoir de cause, comment détecter que le navigateur n'accepte pas la compression ? et donc choisir l'un de ces 2 codes en fonction du résultat.
Partager