'********************************************** ******************************
'Função(pública)
'Nome: Função de busca remota
'Função: Use XMLHTTP para capturar dados remotamente
'Parâmetros: sMethod --- método de envio
'sUrl ------ endereço de destino
' iMode ----- Retorna o tipo de conteúdo: 0 é binário, 1 é texto, 2 é cookie, 3 é informação do cabeçalho do arquivo
' sBase ----- define a codificação
' sReferer -- define a fonte
' sCookie --- Definir cookie
'sLanguage - Definir idioma
' sData ----- Define os parâmetros a serem enviados
' sContent -- Define o tipo de dados de recebimento
' sAgent ---- definir navegador
' sEncoding - Definir compactação gzip
' sAccept --- Definir tipo de documento
'********************************************** ******************************
Função pública SenFe_StealData (sMethod, sUrl, iMode, sBase, sReferer, sCookie, sLanguage, sData, sContent, sAgent, sEncoding, sAccept)
Dim oXmlHttp: Definir oXmlHttp = Server.CreateObject (Msxml2.ServerXMLHTTP)
Com oXmlHttp
Se sMethod = Então sMethod = GET
.Abra sMethod, sUrl, Falso
'Definir fonte da página
Se sReferer<>Então
.SetRequestHeaderReferer, sReferer
Outro
.SetRequestHeader Referente, Split(sUrl, /)(2)
Terminar se
Se sCookie<> Então .SetRequestHeader Cookie, sCookie 'Definir Cookie
Se sLanguage<> Then .SetRequestHeader Accept-Language, sLanguage 'Definir idioma
If sData<> Then .SetRequestHeader Content-Length, Len(sData) 'Definir comprimento dos dados
If sContent<> Then .SetRequestHeader Content-Type, sContent 'Define o tipo de dados aceito
Se sAgent<> Then .SetRequestHeader User-Agent, sAgent 'Definir navegador
If sEncoding<> Then .SetRequestHeader Accept-Encoding, sEncoding 'Definir compactação gzip
Se sAccept<> Então .SetRequestHeader Aceitar, sAccept 'Tipo de documento
.Enviar dados
'Enquanto .ReadyState <> 4
' .WaitForResponse 1000
'Wend
Se .ReadyState<>4 ou .Status<>200 Então
SenFe_StealData = Não foi possível recuperar dados!
Função de saída
Terminar se
Selecione Caso iMode
Caso 0 SenFe_StealData = .ResponseBody
Caso 1
Se sBase<>Então
SenFe_StealData = BytesToBstr(.ResponseBody, sBase)
Outro
SenFe_StealData = .ResponseText
Terminar se
Caso 2 SenFe_StealData = .getResponseHeader(Set-Cookie)
Caso Else SenFe_StealData = .getAllResponseHeaders()
Finalizar seleção
Terminar com
Função final
'********************************************** ******************************
'Função: conversão de codificação
'Parâmetros: sBody - o conteúdo a ser convertido
' sCset - codificação
'********************************************** ******************************
Função BytesToBstr(sBody, sCset)
Com oAdos
.Tipo = 1
.Modo = 3
.Abrir
.Escreva sBody
.Posição = 0
.Tipo = 2
.Charset = sCset
BytesToBstr = .ReadText
.Fechar
Terminar com
Função final