Utilisez WinHttpRequest pour falsifier les informations d'en-tête HTTP, falsifier le Referer et d'autres informations. Puisque Microsoft a bloqué l'objet XmlHttp, certaines informations d'en-tête HTTP ne peuvent pas être falsifiées, mais l'objet WinHttp.WinHttpRequest.5.1 peut en fait falsifier avec succès les informations d'en-tête de toutes les requêtes http !
Nous avons appris de msdn que WinHttp.WinHttpRequest.5.1 est l'objet sous-jacent de msxml 4.0, ce qui signifie que XMLHTTP/ServerXMLHTTP est également encapsulé sur cette base. L'utilisation de WinHttpRequest est à peu près la même que celle de XmlHttp.
WaitForResponse Lors de l'envoi d'une requête de manière asynchrone, vous pouvez utiliser cette méthode pour contrôler le processus de la requête. Le temps d'attente spécifié, en secondes, est la valeur à compléter par une méthode de transmission asynchrone, SetTimeouts.
Dans les scripts côté serveur, vous ne pouvez pas utiliser directement les fonctions de rappel pour contrôler les requêtes asynchrones comme le fait le client, et il n'existe pas de fonction correspondante pour utiliser le programme pour dormir pendant un certain temps, afin d'attendre la requête. Au retour, nous pouvons utiliser cette méthode pour attendre un certain temps.
Copiez le code comme suit :
<%
DimWinHttp
Définir WinHttp = Server.CreateObject (WinHttp.WinHttpRequest.5.1)
'Définir les paramètres
WinHttp.SetTimeouts 60000, 60000, 60000, 3000 'Définir le délai d'expiration de l'opération
'WinHttp.SetTimeouts solveTimeout, connectTimeout, sendTimeout, containTimeout
'resolveTimeout = 10000 'Délai d'expiration pour la résolution des noms DNS, 10 000 millisecondes.
'connectTimeout = 10000 'Délai d'expiration pour établir la connexion Winsock, 10 000 millisecondes.
'sendTimeout = 120000 'Délai d'expiration pour l'envoi des données, 120 000 millisecondes.
'receiveTimeout = 60000 'Délai d'expiration pour la réception de la réponse, 60 000 millisecondes.
WinHttp.Option(4) = 13056 'Ignorer l'indicateur d'erreur
WinHttp.Option(6) = False 'Quand c'est True, il sautera automatiquement lorsque la page demandée est redirigée. False ne sautera pas automatiquement et n'interceptera pas le statut 302 renvoyé par le serveur.
WinHttp.Open GET, http://www.baidu.com/, False 'GET ou POST, Url, Faux mode synchrone Véritable mode asynchrone ;
'Composer les informations d'en-tête HTTP
WinHttp.SetRequestHeader Accepter, */* 'Accepter le type de données
WinHttp.SetRequestHeader Accept-Language, zh-cn,zh 'Langue du système utilisateur
WinHttp.SetRequestHeader User-Agent, Mozilla/6.0 'Informations sur le navigateur de l'utilisateur
WinHttp.SetRequestHeader Content-Type, application/x-www-form-urlencoded 'Méthode d'encodage
Référent WinHttp.SetRequestHeader, http://www.baidu.com/ 'Source
WinHttp.SetRequestHeader Connection, Close 'Close = ne pas conserver la connexion, Keep-Alive = conserver la connexion (connexion persistante)
'WinHttp.SetRequestHeader Accept-Encoding, gzip, deflate 'Si envoyé, l'encodage compressé gzip, deflate sera renvoyé
'WinHttp.SetRequestHeader Content-Length, Len(Str) 'Longueur du contenu, utilisée dans la méthode Post.
Cookie WinHttp.SetRequestHeader, testez le cookie !
'Envoyer des données
WinHttp.Send 'Méthode Post : WinHttp.Send (paramètre)
WinHttp.WaitForResponse 'Attendre la demande de retour, peut également être utilisé en XMLHTTP
'Résultats de sortie
Response.Write WinHttp.Status 'Statut HTTP actuel
'Response.Write WinHttp.ResponseText 'Données texte
Response.BinaryWrite WinHttp.ResponseBody 'Données de flux de données binaires
%>
Option() liée :
WinHttpRequestOption_UserAgentString = 0 ;
WinHttpRequestOption_URL = 1 ;
WinHttpRequestOption_URLCodePage = 2 ;
WinHttpRequestOption_EscapePercentInURL = 3 ;
WinHttpRequestOption_SslErrorIgnoreFlags = 4 ;
WinHttpRequestOption_SelectCertificate = 5 ; '13056 = Ignorer les indicateurs d'erreur
WinHttpRequestOption_EnableRedirects = 6; 'Lorsque True, lorsqu'il y a un saut dans la page demandée, récupérer les informations de la page de saut False ne les récupérera pas au contraire.
WinHttpRequestOption_UrlEscapeDisable = 7 ;
WinHttpRequestOption_UrlEscapeDisableQuery = 8 ;
WinHttpRequestOption_SecureProtocols = 9 ;
WinHttpRequestOption_EnableTracing = 10 ;
WinHttpRequestOption_RevertImpersonationOverSsl = 11 ;
WinHttpRequestOption_EnableHttpsToHttpRedirects = 12 ;
WinHttpRequestOption_EnablePassportAuthentication = 13 ;
WinHttpRequestOption_MaxAutomaticRedirects = 14 ;
WinHttpRequestOption_MaxResponseHeaderSize = 15 ;
WinHttpRequestOption_MaxResponseDrainSize = 16 ;
WinHttpRequestOption_EnableHttp1_1 = 17 ;
WinHttpRequestOption_EnableCertificateRevocationCheck = 18 ;
MéthodeDescription
Abandonner abandonne une méthode d'envoi WinHTTP.
GetAllResponseHeaders récupère tous les en-têtes de réponse HTTP.
GetResponseHeader récupère les en-têtes de réponse HTTP.
Ouvrir Ouvre une connexion HTTP à une ressource HTTP.
Envoyer envoie une requête HTTP au serveur HTTP.
SetAutoLogonPolicy définit la stratégie de connexion automatique actuelle.
SetClientCertificate Sélectionne un certificat client à envoyer à un serveur HTTPS (Hypertext Transfer Protocol Secure).
SetCredentials Définit les informations d'identification à utiliser avec le serveur HTTP, qu'il s'agisse du serveur d'origine ou du serveur proxy.
SetProxy définit les informations du serveur proxy.
SetRequestHeader Ajoute, modifie ou supprime un en-tête de requête HTTP.
SetTimeouts spécifie, en millisecondes, le temps écoulé individuel pour une opération d'envoi/réception de composant.
WaitForResponse Spécifie le temps d'attente, en secondes, pour qu'une méthode de transfert asynchrone complète une valeur, SetTimeouts.
L'objet WinHttpRequest définit les propriétés suivantes.
Description du type d'accès à la propriété
Option Lecture/écriture définit ou récupère une valeur d'option WinHTTP.
ResponseBody Lecture seule Récupère le corps de l'entité de réponse sous forme de tableau d'octets non signé.
ResponseStream en lecture seule Récupérez l'IStream comme entité de réponse.
ResponseText Lecture uniquement du texte extrait du corps de l'entité de réponse.
Statut Code d'état HTTP en lecture seule datant de la dernière fois que la réponse a été récupérée.
StatusText en lecture seule obtient le texte de l'état HTTP.
Événements
L'objet WinHttpRequest définit les événements suivants.
Les événements suivants sont définis par l'objet WinHttpRequest.
Description de l'événement
OnError Se produit lorsqu'il y a une erreur d'exécution dans l'application.
Se produit lorsqu'une erreur d'exécution d'application se produit.
OnResponseDataAvailable Se produit lorsque les données sont disponibles à partir de la réponse.
Se produit lorsque les données de réponse sont disponibles.
OnResponseFinished Se produit lorsque les données de réponse sont complètes.
Se produit lorsque les données de réponse sont complètes.
OnResponseStart Se produit lorsque les données de réponse commencent à être reçues.
Se produit lorsque les données de réponse commencent à être reçues.
Remarques
L'objet WinHttpRequest utilise l'interface IErrorInfo pour fournir des données d'erreur.
L'objet WinHttpRequest utilise l'interface IErrorInfo pour fournir des données d'erreur.
Une description et une valeur d'erreur numérique peuvent être obtenues avec l'objet Err dans Microsoft Visual Basic Scripting Edition (VBScript),
et l'objet Error dans Microsoft JScript.
Les 16 bits inférieurs d'un numéro d'erreur correspondent aux valeurs trouvées dans les messages d'erreur.
Remarque Pour Windows XP et Windows 2000, consultez Exigences d'exécution.
Remarque : Pour Windows XP et Windows 2000, consultez Exigences d'exécution.
Exigences
Clients minimum pris en charge Windows XP, Windows 2000 Professionnel avec SP3 Windows XP
Serveur minimum pris en charge Windows Server 2003, Windows 2000 Server avec SP3
Redistribuable pour WinHTTP 5.0 et Internet Explorer 5.01 ou version ultérieure sous Windows XP et Windows 2000.
WinHTTP 5.0 et Internet Explorer 5.01 ou supérieur pour Windows XP et Windows 2000.
IDL HttpRequest.idl HttpRequest.idl
Bibliothèque Winhttp.lib Winhttp.lib
DLL Winhttp.dll Winhttp.dll