Utilice WinHttpRequest para falsificar información del encabezado HTTP, falsificar Referer y otra información. Dado que Microsoft ha bloqueado el objeto XmlHttp, parte de la información del encabezado HTTP no se puede falsificar, pero el objeto WinHttp.WinHttpRequest.5.1 en realidad puede falsificar con éxito la información del encabezado de todas las solicitudes http.
Aprendimos de msdn que WinHttp.WinHttpRequest.5.1 es el objeto subyacente de msxml 4.0, lo que significa que XMLHTTP/ServerXMLHTTP también está encapsulado sobre su base. El uso de WinHttpRequest es aproximadamente el mismo que el de XmlHttp.
WaitForResponse Al enviar una solicitud de forma asincrónica, puede utilizar este método para controlar el proceso de la solicitud. El tiempo de espera especificado, en segundos, es el valor que debe completarse mediante un método de transmisión asincrónica, SetTimeouts.
En los scripts del lado del servidor, no puede usar directamente funciones de devolución de llamada para controlar solicitudes asincrónicas como lo hace el cliente, y no existe una función correspondiente para usar el programa para que duerma durante un cierto período de tiempo. regreso, podemos usar este método para esperar un cierto período de tiempo.
Copie el código de código de la siguiente manera:
<%
DimWinHttp
Establecer WinHttp = Server.CreateObject(WinHttp.WinHttpRequest.5.1)
'Establecer parámetros
WinHttp.SetTimeouts 60000, 60000, 60000, 3000 'Establecer tiempo de espera de operación
'WinHttp.SetTimeouts resuelveTimeout, connectTimeout, envíaTimeout, recibeTimeout
'resolveTimeout = 10000 'Tiempo de espera para resolver nombres DNS, 10000 milisegundos.
'connectTimeout = 10000 'Tiempo de espera para establecer la conexión Winsock, 10000 milisegundos.
'sendTimeout = 120000 'Tiempo de espera para enviar datos, 120000 milisegundos.
'receiveTimeout = 60000 'Tiempo de espera para recibir respuesta, 60000 milisegundos.
WinHttp.Option(4) = 13056 'Ignorar indicador de error
WinHttp.Option(6) = False 'Cuando es Verdadero, saltará automáticamente cuando se redirija la página solicitada. False no saltará ni interceptará automáticamente el estado 302 devuelto por el servidor.
WinHttp.Open GET, http://www.baidu.com/, Falso 'GET o POST, URL, modo sincrónico falso; modo asincrónico verdadero;
'Componer información de encabezado HTTP
WinHttp.SetRequestHeader Aceptar, */* 'Aceptar tipo de datos
WinHttp.SetRequestHeader Accept-Language, zh-cn,zh 'Idioma del sistema de usuario
WinHttp.SetRequestHeader User-Agent, Mozilla/6.0 'Información del navegador del usuario
WinHttp.SetRequestHeader Tipo de contenido, aplicación/x-www-form-urlencoded 'Método de codificación
WinHttp.SetRequestHeader Referer, http://www.baidu.com/ 'Fuente
WinHttp.SetRequestHeader Connection, Close 'Close = no mantener la conexión, Keep-Alive = mantener la conexión (conexión persistente)
'WinHttp.SetRequestHeader Accept-Encoding, gzip, deflate 'Si se envía, se devolverá la codificación comprimida gzip, deflate
'WinHttp.SetRequestHeader Content-Length, Len(Str) 'Longitud del contenido, utilizado en el método Post.
WinHttp.SetRequestHeader Cookie, cookie de prueba '¡Establecer cookie!
'Enviar datos
WinHttp.Send 'Método de publicación: WinHttp.Send (parámetro)
WinHttp.WaitForResponse 'Esperar solicitud de devolución, también se puede utilizar en XMLHTTP
'Resultados de salida
Response.Write WinHttp.Status 'Estado HTTP actual
'Response.Write WinHttp.ResponseText 'Datos de texto
Response.BinaryWrite WinHttp.ResponseBody 'Datos de flujo de datos binarios
%>
Opción() relacionada:
WinHttpRequestOption_UserAgentString = 0;
WinHttpRequestOption_URL = 1;
WinHttpRequestOption_URLCodePage = 2;
WinHttpRequestOption_EscapePercentInURL = 3;
WinHttpRequestOption_SslErrorIgnoreFlags = 4;
WinHttpRequestOption_SelectCertificate = 5; '13056 = Ignorar indicadores de error
WinHttpRequestOption_EnableRedirects = 6; 'Cuando es Verdadero, cuando hay un salto en la página solicitada, toma la información de la página de salto. Falso no la tomará, por el contrario.
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étodoDescripción
Abortar cancela un método de envío WinHTTP.
GetAllResponseHeaders recupera todos los encabezados de respuesta HTTP.
GetResponseHeader recupera encabezados de respuesta HTTP.
Abrir Abre una conexión HTTP a un recurso HTTP.
Enviar envía una solicitud HTTP al servidor HTTP.
SetAutoLogonPolicy establece la política de inicio de sesión automático actual.
SetClientCertificate Selecciona un certificado de cliente para enviarlo a un servidor HTTPS (Protocolo seguro de transferencia de hipertexto).
SetCredentials Establece las credenciales que se utilizarán con el servidor HTTP, ya sea el servidor de origen o el servidor proxy.
SetProxy establece la información del servidor proxy.
SetRequestHeader Agrega, cambia o elimina un encabezado de solicitud HTTP.
SetTimeouts especifica, en milisegundos, el tiempo transcurrido individual para una operación de envío/recepción de un componente.
WaitForResponse Especifica el tiempo de espera, en segundos, para que un método de transferencia asincrónica complete un valor, SetTimeouts.
El objeto WinHttpRequest define las siguientes propiedades.
Descripción del tipo de acceso a la propiedad
Opción Lectura/escritura establece o recupera un valor de opción WinHTTP.
ResponseBody Sólo lectura Recupera el cuerpo de la entidad de respuesta como una matriz de bytes sin firmar.
ResponseStream de solo lectura Recupera IStream como entidad de respuesta.
ResponseText Solo lectura como el texto recuperado del cuerpo de la entidad de respuesta.
Estado Código de estado HTTP de solo lectura de la última vez que se recuperó la respuesta.
StatusText de solo lectura obtiene el texto del estado HTTP.
Eventos
El objeto WinHttpRequest define los siguientes eventos.
Los siguientes eventos están definidos por el objeto WinHttpRequest.
Descripción del evento
OnError Ocurre cuando hay un error de tiempo de ejecución en la aplicación.
Ocurre cuando ocurre un error de tiempo de ejecución de la aplicación.
OnResponseDataAvailable Ocurre cuando hay datos disponibles de la respuesta.
Ocurre cuando los datos de respuesta están disponibles.
OnResponseFinished Ocurre cuando los datos de respuesta están completos.
Ocurre cuando los datos de respuesta están completos.
OnResponseStart Ocurre cuando se comienzan a recibir los datos de respuesta.
Ocurre cuando se comienzan a recibir datos de respuesta.
Observaciones
El objeto WinHttpRequest utiliza la interfaz IErrorInfo para proporcionar datos de error.
El objeto WinHttpRequest utiliza la interfaz IErrorInfo para proporcionar datos de error.
Se puede obtener una descripción y un valor de error numérico con el objeto Err en Microsoft Visual Basic Scripting Edition (VBScript).
y el objeto Error en Microsoft JScript.
Los 16 bits inferiores de un número de error corresponden a los valores que se encuentran en los mensajes de error.
Nota Para Windows XP y Windows 2000, consulte Requisitos de tiempo de ejecución.
Nota: Para Windows XP y Windows 2000, consulte Requisitos de tiempo de ejecución.
Requisitos
Clientes mínimos admitidos Windows XP, Windows 2000 Professional con SP3 Windows XP
Servidor mínimo admitido Windows Server 2003, Windows 2000 Server con SP3
Redistribuible para WinHTTP 5.0 e Internet Explorer 5.01 o posterior en Windows XP y Windows 2000.
WinHTTP 5.0 e Internet Explorer 5.01 o superior para Windows XP y Windows 2000.
IDL HttpRequest.idl HttpRequest.idl
Biblioteca Winhttp.lib Winhttp.lib
DLL Winhttp.dll Winhttp.dll