Réponse de la jetée sans Charset
-
22-08-2019 - |
Question
J'utilise la jetée pour tester un webservice que nous avons et je suis en train de le faire pour répondre sans charset sous l'en-tête de type de contenu.
Quelqu'un sait comment faire cela?
J'ai essayé d'intercepter la réponse et le réglage de la CharacterEncoding à null ou « » mais qui donne des exceptions.
J'utilise Jetty 6.1.6.
La solution
Je l'ai essayé moi-même, mais je dois admettre que, ma jetée est très ancienne (4.2., Mais fait tout la façon dont je besoin). Je l'ai comparé à tomcat (4.1.29, vieux aussi). J'ai vérifié le type de contenu avec le code suivant:
URL tomcatUrl = new URL("http://localhost:18080/ppi/jobperform/headertest")//tomcat;
URLConnection tconnect = tomcatUrl.openConnection();
System.out.println("tomcat: " + tconnect.getContentType());
URL jettyUrl = new URL("http://localhost:13818/ppi/jobperform/headertest")//jetty;
URLConnection jconnect = jettyUrl.openConnection();
System.out.println("jetty: " + jconnect.getContentType());
Et le résultat est le suivant:
Code Servlet:
response.setContentType("");
response.getWriter().write("Return");
=>
tomcat:; charset =
ISO-8859-1
jetée:
Code Servlet:
response.setContentType("text/plain");
response.getWriter().write("Return");
=>
tomcat: text / plain; charset = ISO-8859-1
jetée: text / plain
Code Servlet:
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write("Return");
=>
tomcat: text / plain; charset = UTF-8
jetée: text / plain; charset = UTF-8
Il semble que la jetée plus fait exactement ce que vous voulez, tout tomcat fait ce que vous avez obtenu de la jetée plus récente.
Autres conseils
Je pense que ce pas une question dont contenant servlet que vous utilisez, mais ce que vous faites avec la réponse dans votre servlet. Si vous définissez votre codage de caractères en appelant setContentType de ServletResponse (2.3) ou setCharacterEncoding (2.4, 2.5) avec le paramètre null
ou ""
il devrait fonctionner (ne pas essayer moi-même). Mais assurez-vous d'appeler les méthodes nommées ci-dessus avant appelant getWriter, sinon paramétrage de l'encodage n'a pas d'effet !
Le jeu de caractères est très utile d'information. Au lieu d'essayer de forcer un bon produit (jetée) pour faire la mauvaise chose que je préférerais essayer d'enseigner le consommateur du service pour faire la bonne chose (reconnaître et honorer charset).