'************************************************ * *******************************
'Función(pública)
'Nombre: Función de búsqueda remota
'Función: Utilice XMLHTTP para capturar datos de forma remota
'Parámetros: sMethod --- método de envío
' URL ------ dirección de destino
' iMode ----- Tipo de contenido devuelto: 0 es binario, 1 es texto, 2 es cookie, 3 es información del encabezado del archivo
' sBase ----- establecer codificación
' sReferer - establecer fuente
' sCookie --- Establecer cookie
' sLanguage - Establecer idioma
' sData ----- Establece los parámetros a enviar
' sContent: establece el tipo de datos de recepción
' sAgent ---- configurar el navegador
' sEncoding - Establece la compresión gzip
' sAceptar --- Establecer tipo de documento
'************************************************ * *******************************
Función pública SenFe_StealData (sMethod, sUrl, iMode, sBase, sReferer, sCookie, sLanguage, sData, sContent, sAgent, sEncoding, sAccept)
Dim oXmlHttp: Establecer oXmlHttp = Server.CreateObject(Msxml2.ServerXMLHTTP)
Con oXmlHttp
Si sMethod= Entonces sMethod = OBTENER
.Abrir sMethod, sUrl, False
'Establecer fuente de página
Si sReferer<>Entonces
.SetRequestHeader Referer, sReferer
Demás
.SetRequestHeader Referer, Split(sUrl, /)(2)
Terminar si
Si sCookie<> Entonces .SetRequestHeader Cookie, sCookie 'Establecer cookie
Si sLanguage<> Entonces .SetRequestHeader Aceptar-Idioma, sLanguage 'Establecer idioma
Si sData<> Entonces .SetRequestHeader Content-Length, Len(sData) 'Establecer longitud de datos
Si sContent<> Entonces .SetRequestHeader Content-Type, sContent 'Establece el tipo de datos aceptado
Si sAgent<> Entonces .SetRequestHeader User-Agent, sAgent 'Establecer navegador
Si sEncoding<> Entonces .SetRequestHeader Accept-Encoding, sEncoding 'Establece compresión gzip
Si sAccept<> Entonces .SetRequestHeader Aceptar, sAccept 'Tipo de documento
.Enviar datos
'Mientras .ReadyState <> 4
' .EsperarRespuesta 1000
'Encaminarse a
Si .ReadyState<>4 o .Status<>200 entonces
SenFe_StealData = ¡No se pueden recuperar datos!
Función de salida
Terminar si
Seleccione Caso iMode
Caso 0 SenFe_StealData = .ResponseBody
Caso 1
Si sBase<>Entonces
SenFe_StealData = BytesToBstr(.ResponseBody, sBase)
Demás
SenFe_StealData = .TextoRespuesta
Terminar si
Caso 2 SenFe_StealData = .getResponseHeader(Set-Cookie)
Caso contrario SenFe_StealData = .getAllResponseHeaders()
Seleccionar fin
Terminar con
Función final
'************************************************ * *******************************
'Función: conversión de codificación
'Parámetros: sBody - el contenido a convertir
' sCset - codificación
'************************************************ * *******************************
Función BytesToBstr(sBody, sCset)
Con oAdos
.Tipo = 1
.Modo = 3
.Abierto
.Escribir sBody
.Posición = 0
.Tipo = 2
.juego de caracteres = sCset
BytesToBstr = .ReadText
.Cerca
Terminar con
Función final