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ó:
Gracias por la repuesta.
Pero sigue sin funcionar. El problema creo que es que el servidor dá una
respuesta "personalizada" y los caracteres especiales viajan mal.
Quizá habría que mandar previamente una cabeceras. Pero no tengo ni idea
de cómo hacerlo. Si alguien lo me puediese decir.
La url de la que se obtiene el código es:
http://www.miapuesta.info/banner/ba...eccion.php

Si alguien me ayuda tendré una pequeña atención.

Saludos.

"Miguel Gonzalez" escribió en el mensaje
news:

Hola Jimmy.

Creo que sería mejor que utilizaras el objeto "ServerXMLHTTP", que es
mucho más eficiente para el intercambio de información entre servidores.

El "response", para que respete las cabeceras de codificación, cabría
hacerlo de la siguiente manera:

<%
Response.Write objXml.responseXML.text
%>

Un consejo último, evita usar como nombres del objeto o variable todo lo
que pueda confundirse con nombres de funciones, métodos o propiedades,
ya que pueden producirse "errores imprevisibles". En tu caso, en vez de
"Set xml...", podrías usar otro nombre para el objeto, tal como
"objXml...", por ejemplo:

<%
Set objXml = Server.CreateObject("Msxml2.ServerXMLHTTP")
%>

Saludos!
Miguel


Jimmy escribió:

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 &aacute;

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








Respuesta Responder a este mensaje
#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?
Respuesta Responder a este mensaje
#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ó:
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 esde
pago.
Lo que me extraña que no haya solución porque seguro que casos comoel 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 pasapor
indicar la codificación en
el propio archivo fuente de datos del servidor remoto. Ello es debido aque
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ó:

Gracias por la repuesta.
Pero sigue sin funcionar. El problema creo que es que el servidor dá una
respuesta "personalizada" y los caracteres especiales viajan mal.
Quizá habría que mandar previamente una cabeceras. Pero no tengo niidea
de cómo hacerlo. Si alguien lo me puediese decir.
La url de la que se obtiene el código es:
http://www.miapuesta.info/banner/ba...eccion.php

Si alguien me ayuda tendré una pequeña atención.

Saludos.

"Miguel Gonzalez" escribió en el mensaje
news:

Hola Jimmy.

Creo que sería mejor que utilizaras el objeto "ServerXMLHTTP", que es
mucho más eficiente para el intercambio de información entre servidores.

El "response", para que respete las cabeceras de codificación, cabría
hacerlo de la siguiente manera:

<%
Response.Write objXml.responseXML.text
%>

Un consejo último, evita usar como nombres del objeto o variable todolo
que pueda confundirse con nombres de funciones, métodos o propiedades,
ya que pueden producirse "errores imprevisibles". En tu caso, en vez de
"Set xml...", podrías usar otro nombre para el objeto, tal como
"objXml...", por ejemplo:

<%
Set objXml = Server.CreateObject("Msxml2.ServerXMLHTTP")
%>

Saludos!
Miguel


Jimmy escribió:


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 &aacute;

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












Respuesta Responder a este mensaje
#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ó:
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 esde
pago.
Lo que me extraña que no haya solución porque seguro que casos comoel 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 pasapor
indicar la codificación en
el propio archivo fuente de datos del servidor remoto. Ello es debido aque
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ó:

Gracias por la repuesta.
Pero sigue sin funcionar. El problema creo que es que el servidor dá una
respuesta "personalizada" y los caracteres especiales viajan mal.
Quizá habría que mandar previamente una cabeceras. Pero no tengo niidea de
cómo hacerlo. Si alguien lo me puediese decir.
La url de la que se obtiene el código es:
http://www.miapuesta.info/banner/ba...eccion.php

Si alguien me ayuda tendré una pequeña atención.

Saludos.

"Miguel Gonzalez" escribió en el mensaje
news:

Hola Jimmy.

Creo que sería mejor que utilizaras el objeto "ServerXMLHTTP", que es
mucho más eficiente para el intercambio de información entre servidores.

El "response", para que respete las cabeceras de codificación, cabría
hacerlo de la siguiente manera:

<%
Response.Write objXml.responseXML.text
%>

Un consejo último, evita usar como nombres del objeto o variable todolo
que pueda confundirse con nombres de funciones, métodos o propiedades,
ya que pueden producirse "errores imprevisibles". En tu caso, en vez de
"Set xml...", podrías usar otro nombre para el objeto, tal como
"objXml...", por ejemplo:

<%
Set objXml = Server.CreateObject("Msxml2.ServerXMLHTTP")
%>

Saludos!
Miguel


Jimmy escribió:


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 &aacute;

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












Respuesta Responder a este mensaje
#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ó:
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ó:

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 esde
pago.
Lo que me extraña que no haya solución porque seguro que casos comoel 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 pasapor
indicar la codificación en
el propio archivo fuente de datos del servidor remoto. Ello es debido aque
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ó:


Gracias por la repuesta.
Pero sigue sin funcionar. El problema creo que es que el servidor dá una
respuesta "personalizada" y los caracteres especiales viajan mal.
Quizá habría que mandar previamente una cabeceras. Pero no tengo niidea de
cómo hacerlo. Si alguien lo me puediese decir.
La url de la que se obtiene el código es:
http://www.miapuesta.info/banner/ba...eccion.php

Si alguien me ayuda tendré una pequeña atención.

Saludos.

"Miguel Gonzalez" escribió en el mensaje
news:

Hola Jimmy.

Creo que sería mejor que utilizaras el objeto "ServerXMLHTTP", que es
mucho más eficiente para el intercambio de información entre servidores.

El "response", para que respete las cabeceras de codificación, cabría
hacerlo de la siguiente manera:

<%
Response.Write objXml.responseXML.text
%>

Un consejo último, evita usar como nombres del objeto o variable todolo
que pueda confundirse con nombres de funciones, métodos o propiedades,
ya que pueden producirse "errores imprevisibles". En tu caso, en vez de
"Set xml...", podrías usar otro nombre para el objeto, tal como
"objXml...", por ejemplo:

<%
Set objXml = Server.CreateObject("Msxml2.ServerXMLHTTP")
%>

Saludos!
Miguel


Jimmy escribió:



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 &aacute;

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
















Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida