Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Solicitud Corrupta al solicitar una URL con acentos empleando el objeto WebClient

Estas en el tema de Solicitud Corrupta al solicitar una URL con acentos empleando el objeto WebClient en el foro de .NET en Foros del Web. Buenas tardes Foreros !!! Espero podáis ayudarme con un problema, el cual... no lo veo nada claro, y soy incapaz de encontrar una solución. :S ...
  #1 (permalink)  
Antiguo 18/07/2013, 10:35
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Solicitud Corrupta al solicitar una URL con acentos empleando el objeto WebClient

Buenas tardes Foreros !!!

Espero podáis ayudarme con un problema, el cual... no lo veo nada claro, y soy incapaz de encontrar una solución. :S

Veréis... Google tiene un servicio de traducción online, el cual, mandando un texto, te envía un archivo de audio reproduciendo el texto enviado.

La cuestión es que cuando hago esta solicitud a través del Google Chrome, enviado una cadena con acentos y ñ, el servicio reproduce sin ningún problema el texto. Perfectamente.

Código:
http://translate.google.com/translate_tts?tl=es&q=España,%20Camión%20y%20anfitrión
*Los %20 lo puso el editor de Foros del Web, haciendo la solicitud directamente con espacios en blanco también funcionan.

Cuando hago EXACTAMENTE (Copiar y pegar) la misma solicitud desde el IExplorer, la reproducción la hace de forma corrupta, es decir, se ve que no llegan al servidor de una forma correcta los caracteres con acentos, y desaparecen, generando una reproducción con falta de letras.

Pues bien... ese mismo problema me está sucediendo con el objeto WebClient, y la verdad, no sé como solucionarlo. Probé utilizando el HttpUtility.UrlEncode, y bien... la cadena de texto me convierte los caracteres con acento, a caracteres html que son enviados al servicio, pero aún así... lo hace mal.

les dejo la línea de código relevante
Código:
string message = System.Web.HttpUtility.UrlEncode("España,%20Camión%20y%20anfitrión");

byte[] data = objWebClient.DownloadData("http://translate.google.com/translate_tts?tl=es&q=" + message);
Por favor, si alguien entiende por que con el Chrome si funciona, y con el Explorer no, y por qué mi WebClient, aún formateandolo o no, tampoco... le agradecería me ayudara, por que no soy capaz de resolverlo.

Desde ya, gracias por al menos haberos tomado la molestia de leer el post.

Un Saludo.
__________________
Charlie.
  #2 (permalink)  
Antiguo 20/07/2013, 10:46
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Respuesta: Solicitud Corrupta al solicitar una URL con acentos empleando el objeto We

Solucionado. Me fijé en como realizaba la petición el Google Chrome, y al poner esto en la cabecera del WebClient se ha solucionado:

Código:
objWebClient.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36";
__________________
Charlie.

Etiquetas: net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:45.