'************************************************ * *****************************
'Fonction (publique)
'Nom : Fonction de récupération à distance
'Fonction : Utiliser XMLHTTP pour capturer des données à distance
'Paramètres : sMéthode --- méthode d'envoi
' sUrl ------ adresse cible
' iMode ----- Type de contenu renvoyé : 0 est binaire, 1 est du texte, 2 est un cookie, 3 est des informations d'en-tête de fichier
' sBase ----- définir l'encodage
' sReferer -- définir la source
' sCookie --- Définir un cookie
' sLangue - Définir la langue
' sData ----- Définir les paramètres à envoyer
' sContent -- Définit le type de données de réception
' sAgent ---- définir le navigateur
' sEncoding - Définir la compression gzip
' sAccepter --- Définir le type de document
'************************************************ * *****************************
Fonction publique SenFe_StealData(sMethod, sUrl, iMode, sBase, sReferer, sCookie, sLanguage, sData, sContent, sAgent, sEncoding, sAccept)
Dim oXmlHttp : Définir oXmlHttp = Server.CreateObject(Msxml2.ServerXMLHTTP)
Avec oXmlHttp
Si sMethod= Alors sMethod = GET
.Ouvrir sMéthode, sUrl, Faux
'Définir la source de la page
Si sReferer<>Alors
.SetRequestHeader Référent, sReferer
Autre
.SetRequestHeader Référent, Split(sUrl, /)(2)
Fin si
Si sCookie<> Alors .SetRequestHeader Cookie, sCookie 'Définir le cookie
Si sLanguage<> Alors .SetRequestHeader Accept-Language, sLanguage 'Définir la langue
Si sData<> Then .SetRequestHeader Content-Length, Len(sData) 'Définir la longueur des données
Si sContent<> Alors .SetRequestHeader Content-Type, sContent 'Définit le type de données accepté
Si sAgent<> Alors .SetRequestHeader User-Agent, sAgent 'Définir le navigateur
Si sEncoding<> Alors .SetRequestHeader Accept-Encoding, sEncoding 'Définir la compression gzip
Si sAccept<> Alors .SetRequestHeader Accepter, sAccept 'Type de document
.Envoyer des données s
'Pendant que .ReadyState <> 4
' .WaitForResponse 1000
'Wend
Si .ReadyState<>4 Ou .Status<>200 Alors
SenFe_StealData = Impossible de récupérer les données !
Fonction de sortie
Fin si
Sélectionnez le cas iMode
Cas 0 SenFe_StealData = .ResponseBody
Cas 1
Si sBase<>Alors
SenFe_StealData = BytesToBstr (.ResponseBody, sBase)
Autre
SenFe_StealData = .ResponseText
Fin si
Cas 2 SenFe_StealData = .getResponseHeader(Set-Cookie)
Sinon, SenFe_StealData = .getAllResponseHeaders()
Fin de la sélection
Terminer par
Fonction de fin
'************************************************ * *****************************
'Fonction : conversion d'encodage
'Paramètres : sBody - le contenu à convertir
' sCset - encodage
'************************************************ * *****************************
Fonction BytesToBstr(sBody, sCset)
Avec oAdos
.Type = 1
.Mode = 3
.Ouvrir
.Écrire sCorps
.Position = 0
.Type = 2
.Charset = sCset
OctetsVersBstr = .ReadText
.Fermer
Terminer par
Fonction de fin