Pregunta

Estoy usando embarcadero para probar un servicio web que tenemos y estoy tratando de conseguir que responder sin charset bajo el encabezado de tipo de contenido.

¿Alguien sabe cómo hacer esto?

He intentado interceptar la respuesta y establecer el CharacterEncoding a null o "", pero que da excepciones.

Estoy utilizando embarcadero 6.1.6.

¿Fue útil?

Solución

Lo probé mi auto ahora, pero tengo que admitir, mi embarcadero es muy antigua (4.2., Pero hace todo el camino que lo necesite). He comparado a Tomcat (4.1.29, viejo también). Comprobé el tipo de contenido con el código siguiente:

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());

Y el resultado fue el siguiente:

código de servlet:

    response.setContentType("");
    response.getWriter().write("Return");

=>
tomcat:; charset = ISO-8859-1
embarcadero:

código de servlet:

     response.setContentType("text/plain");
     response.getWriter().write("Return");

=>
Tomcat: text / plain; charset = ISO-8859-1
espigón: text / plain

código de servlet:

response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write("Return");

=>
Tomcat: text / plain; charset = UTF-8
embarcadero: text / plain; charset = UTF-8

Así que parece como si el muelle viejo hace exactamente lo que quiere, mientras que Tomcat hace lo que obtuvo de la nueva escollera.

Otros consejos

Creo que esto no es una cuestión de qué contenedor de servlets que utilizar, sino lo que haces con la respuesta dentro de un servlet. Si establece la codificación de caracteres llamando setContentType de ServletResponse (2.3) o setCharacterEncoding (2.4, 2.5) con el parámetro null o "" que debería funcionar (no probé a mí mismo). Pero asegúrese de llamar a los métodos mencionados en el encabezamiento antes llamando getWriter, el establecimiento de otro modo la codificación no tendrá ningún efecto !

El juego de caracteres es información muy útil. En lugar de tratar de forzar un buen producto (el embarcadero) para hacer las cosas mal yo preferiría tratar de enseñar al consumidor del servicio a hacer lo correcto (reconocer y honrar juego de caracteres).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top