xmlhttp

11/01/2006 - 00:22 por Jimmy | Informe spam
Estoy intentando leer el codigo de una pagina externa para un tratamiento
posterior.
El problema en que la lectura no interpreta correctamente las letras con
acento. La página original tiene definido en cabecera iso-8859-1 y en el
html las letras acentuadas vienen como "á" y no de la forma á

El código que utilizo es:

Set xml = Server.CreateObject("Microsoft.XMLHTTP")
xml.Open "GET","http://www.dominio.com/seccion.php", False
xml.Send
Response.Write xml.responseText
Set xml = Nothing

¿Alguna sugerencia?
Gracias

Preguntas similare

Leer las respuestas

#1 Jimmy
12/01/2006 - 01:03 | Informe spam
Miguel,

En primer lugar agradecerte las molestias que te has tomado.
Lo que pretendo hacer es obtener diariamente el contenido de la página que
te pasé, grabarla en mi server y a continuación poderla mostrar. Podría
hacerlo directamente con un iframe pero estaría penalizado por los
buscadores y por eso quiero tener los ficheros con todo el contenido. Al
servidor remoto no tengo ningún tipo de acceso ni posiblidad de tenerlo.
He encontrado el componente asphttp.dll que parece que funciona pero es de
pago.
Lo que me extraña que no haya solución porque seguro que casos como el mío
los hay.
Tampoco me importaria que la solución fuese en aspx.
Gracias de nuevo y saludos


"Miguel Gonzalez" escribió en el mensaje
news:%
Hola Jimy.

He estado mirando las referencias y, hasta donde se, la solución pasa por
indicar la codificación en
el propio archivo fuente de datos del servidor remoto. Ello es debido a que
el objeto
"ServerXMLHTTP" utiliza la codificación UTF-8 para la transferencia de datos
a menos que se le
indique lo contrario en el fichero fuente de datos. Creo que lo mejor sería
que buscaras una
alternativa a lo que quieres hacer. Si te explicas un poco más a lo mejor
podemos orientarte de
alguna forma.

Saludos!
Miguel


Jimy escribió:
Mostrar la cita
#2 Xavier Michel
12/01/2006 - 16:49 | Informe spam
Hola, tengo el mismo problema de jimmy, intente con el método de miguel y no
me pasa la página.
Mi problema es el siguiente: Estoy enviando Información a mis clientes de la
base de datos, esta información la estoy enviando por mail, al momento de
enviar envia sin acentos y sin eñes los datos ingresados en la base de datos,
la misma página se ve perfectamente en el explorador, intente colocando
cabeceras tales como:

'pagina_obtenida.setRequestHeader "Accept-Language", "sp"
'pagina_obtenida.setRequestHeader "Pragma", "no-cache"
'pagina_obtenida.setRequestHeader "Content-Type",
"application/x-www-form-urlencoded"
pagina_obtenida.setRequestHeader "Content-Type","text/html;

Pero sigue sin mostrarte los acentos y las eñes,

Sabrian por que es?
#3 Miguel Gonzalez
12/01/2006 - 17:33 | Informe spam
Hola Jimmy.

He estado mirando el problema y creo que he dado con una solución
relativamente sencilla. Se trata de utilizar el método "responseBody"
(que recibe un array binario, en bruto, del "response" del servidor
remoto) y "decodificarlo" mediante una función que "recupere" los
caracteres:

<%
' Aqui la funcion
Function decodifica(texto)
'Convierte el array binario recibido caracter a caracter
Dim textoOk
textoOk = ""
For i = 0 To UBound(texto)
textoOk = textoOk & ChrW(AscW(Chr(AscB(MidB(texto, i + 1, 1)))))
Next
decodifica = textoOk
End Function

'...Y aqui la parte XMLHTTP
uRLRemota = "http://www.miapuesta.info/banner/ba....php"
Set objXml = Server.CreateObject("Msxml2.ServerXMLHTTP")
objXml.Open "GET", uRLRemota, False
objXml.Send()
Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"
Response.Write decodifica(objXml.responseBody)
Set objXml = Nothing
%>

Nota: Para mayor seguridad, se envian encabezados de codificación
"iso-8859-1" al navegador cliente (AddHeader)

Saludos!
Miguel


Jimmy escribió:
Mostrar la cita
#4 Jimmy
12/01/2006 - 21:43 | Informe spam
Miguel,
Eres un ckack. Funciona ok.
Dije que iba tener una atención y así lo voy a hacer. Además estoy buscando
a una persona para desarrollar unos temas muy beneficiosos y puede que te
interese.
Mándame tu email o tfno. a

Gracias y saludos.

"Miguel Gonzalez" escribió en el mensaje
news:%

Hola Jimmy.

He estado mirando el problema y creo que he dado con una solución
relativamente sencilla. Se trata de utilizar el método "responseBody"
(que recibe un array binario, en bruto, del "response" del servidor
remoto) y "decodificarlo" mediante una función que "recupere" los
caracteres:

<%
' Aqui la funcion
Function decodifica(texto)
'Convierte el array binario recibido caracter a caracter
Dim textoOk
textoOk = ""
For i = 0 To UBound(texto)
textoOk = textoOk & ChrW(AscW(Chr(AscB(MidB(texto, i + 1, 1)))))
Next
decodifica = textoOk
End Function

'...Y aqui la parte XMLHTTP
uRLRemota = "http://www.miapuesta.info/banner/ba....php"
Set objXml = Server.CreateObject("Msxml2.ServerXMLHTTP")
objXml.Open "GET", uRLRemota, False
objXml.Send()
Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"
Response.Write decodifica(objXml.responseBody)
Set objXml = Nothing
%>

Nota: Para mayor seguridad, se envian encabezados de codificación
"iso-8859-1" al navegador cliente (AddHeader)

Saludos!
Miguel


Jimmy escribió:
Mostrar la cita
#5 Miguel Gonzalez
12/01/2006 - 22:01 | Informe spam
Gracias por el ofrecimiento Jimy, de veras, pero ya "voy servido" de trabajo...

Me alegro de haberte podido ayudar.

Saludos!
Miguel

Jimmy escribió:
Mostrar la cita
Ads by Google
Search Busqueda sugerida