Use WinHttpRequest para falsificar informações de cabeçalho HTTP, forjar Referer e outras informações Como a Microsoft bloqueou o objeto XmlHttp, algumas informações de cabeçalho HTTP não podem ser falsificadas, mas o objeto WinHttp.WinHttpRequest.5.1 pode forjar com êxito as informações de cabeçalho de todas as solicitações http!
Aprendemos com o msdn que WinHttp.WinHttpRequest.5.1 é o objeto subjacente do msxml 4.0, o que significa que XMLHTTP/ServerXMLHTTP também é encapsulado em sua base. O uso de WinHttpRequest é aproximadamente o mesmo que o de XmlHttp.
WaitForResponse Ao enviar uma solicitação de forma assíncrona, você pode usar este método para controlar o processo da solicitação. O tempo de espera especificado, em segundos, é o valor a ser concluído por um método de transmissão assíncrona, SetTimeouts.
Em scripts do lado do servidor, você não pode usar funções de retorno de chamada diretamente para controlar solicitações assíncronas como o cliente faz, e não há função correspondente para usar o programa para dormir por um determinado período de tempo, para aguardar a solicitação. retornar, podemos usar este método para esperar um determinado período de tempo.
Copie o código do código da seguinte forma:
<%
DimWinHttp
Definir WinHttp = Server.CreateObject(WinHttp.WinHttpRequest.5.1)
'Definir parâmetros
WinHttp.SetTimeouts 60000, 60000, 60000, 3000 'Definir tempo limite de operação
'WinHttp.SetTimeouts resolveTimeout, connectTimeout, sendTimeout, recebeTimeout
'resolveTimeout = 10000 'Tempo limite para resolução de nomes DNS, 10.000 milissegundos.
'connectTimeout = 10000 'Tempo limite para estabelecer conexão Winsock, 10.000 milissegundos.
'sendTimeout = 120000 'Tempo limite para envio de dados, 120000 milissegundos.
'receiveTimeout = 60000 'Tempo limite para recebimento de resposta, 60.000 milissegundos.
WinHttp.Option(4) = 13056 'Ignorar sinalizador de erro
WinHttp.Option(6) = False 'Quando for True, saltará automaticamente quando a página solicitada for redirecionada. False não saltará automaticamente e interceptará o status 302 retornado pelo servidor.
WinHttp.Open GET, http://www.baidu.com/, False 'GET ou POST, Url, modo síncrono falso;
'Compor informações do cabeçalho HTTP
WinHttp.SetRequestHeader Accept, */* 'Aceitar tipo de dados
WinHttp.SetRequestHeader Accept-Language, zh-cn,zh 'Idioma do sistema do usuário
WinHttp.SetRequestHeader User-Agent, Mozilla/6.0 'Informações do navegador do usuário
WinHttp.SetRequestHeader Content-Type, application/x-www-form-urlencoded 'Método de codificação
Indicador WinHttp.SetRequestHeader, http://www.baidu.com/ 'Fonte
Conexão WinHttp.SetRequestHeader, Close 'Close = não mantém a conexão, Keep-Alive = mantém a conexão (conexão persistente)
'WinHttp.SetRequestHeader Accept-Encoding, gzip, deflate 'Se enviado, gzip, deflate a codificação compactada será retornada
'WinHttp.SetRequestHeader Content-Length, Len(Str) 'Comprimento do conteúdo, usado no método Post.
WinHttp.SetRequestHeader Cookie, cookie de teste 'Definir cookie!
'Enviar dados
WinHttp.Send 'Método de postagem: WinHttp.Send (parâmetro)
WinHttp.WaitForResponse 'Aguarda solicitação de retorno, também pode ser usado em XMLHTTP
'Resultados de saída
Response.Write WinHttp.Status 'Status HTTP atual
'Response.Write WinHttp.ResponseText 'Dados de texto
Response.BinaryWrite WinHttp.ResponseBody 'Dados de fluxo de dados binários
%>
Opção() relacionada:
WinHttpRequestOption_UserAgentString = 0;
WinHttpRequestOption_URL = 1;
WinHttpRequestOption_URLCodePage = 2;
WinHttpRequestOption_EscapePercentInURL = 3;
WinHttpRequestOption_SslErrorIgnoreFlags = 4;
WinHttpRequestOption_SelectCertificate = 5; '13056 = Ignorar sinalizadores de erro
WinHttpRequestOption_EnableRedirects = 6; 'Quando True, quando houver um salto na página solicitada, pegue as informações da página de salto, ao contrário.
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;
Descrição do método
Abortar anula um método de envio WinHTTP.
GetAllResponseHeaders recupera todos os cabeçalhos de resposta HTTP.
GetResponseHeader recupera cabeçalhos de resposta HTTP.
Abrir Abre uma conexão HTTP com um recurso HTTP.
Enviar envia uma solicitação HTTP ao servidor HTTP.
SetAutoLogonPolicy define a política de login automático atual.
SetClientCertificate Seleciona um certificado de cliente para enviar a um servidor HTTPS (Hypertext Transfer Protocol Secure).
SetCredentials Define as credenciais a serem usadas com o servidor HTTP, seja o servidor de origem ou proxy.
SetProxy define informações do servidor proxy.
SetRequestHeader Adiciona, altera ou remove um cabeçalho de solicitação HTTP.
SetTimeouts especifica, em milissegundos, o tempo decorrido individual para uma operação de envio/recebimento de componente.
WaitForResponse Especifica o tempo de espera, em segundos, para que um método de transferência assíncrona conclua um valor, SetTimeouts.
O objeto WinHttpRequest define as propriedades a seguir.
Descrição do tipo de acesso à propriedade
Opção Leitura/gravação define ou recupera um valor de opção WinHTTP.
ResponseBody Somente leitura Recupera o corpo da entidade de resposta como uma matriz de bytes não assinados.
ResponseStream somente leitura Recupera o IStream como a entidade de resposta.
ResponseText Somente leitura como o texto recuperado do corpo da entidade de resposta.
Código de status HTTP somente leitura da última vez que a resposta foi recuperada.
StatusText somente leitura obtém o texto do status HTTP.
Eventos
O objeto WinHttpRequest define os seguintes eventos.
Os eventos a seguir são definidos pelo objeto WinHttpRequest.
Descrição do evento
OnError Ocorre quando há um erro em tempo de execução na aplicação.
Ocorre quando ocorre um erro de tempo de execução do aplicativo.
OnResponseDataAvailable Ocorre quando os dados estão disponíveis na resposta.
Ocorre quando os dados de resposta estão disponíveis.
OnResponseFinished Ocorre quando os dados de resposta são concluídos.
Ocorre quando os dados de resposta são concluídos.
OnResponseStart Ocorre quando os dados de resposta começam a ser recebidos.
Ocorre quando os dados de resposta começam a ser recebidos.
Observações
O objeto WinHttpRequest usa a interface IErrorInfo para fornecer dados de erro.
O objeto WinHttpRequest usa a interface IErrorInfo para fornecer dados de erro.
Uma descrição e um valor de erro numérico podem ser obtidos com o objeto Err no Microsoft Visual Basic Scripting Edition (VBScript),
e o objeto Error no Microsoft JScript.
Os 16 bits inferiores de um número de erro correspondem aos valores encontrados nas mensagens de erro.
Observação Para Windows XP e Windows 2000, consulte Requisitos de tempo de execução.
Nota: Para Windows XP e Windows 2000, consulte Requisitos de tempo de execução.
Requisitos
Clientes mínimos suportados Windows XP, Windows 2000 Professional com SP3 Windows XP
Servidor mínimo suportado Windows Server 2003, Windows 2000 Server com SP3
Redistribuível para WinHTTP 5.0 e Internet Explorer 5.01 ou posterior no Windows XP e Windows 2000.
WinHTTP 5.0 e Internet Explorer 5.01 ou superior para Windows XP e Windows 2000.
IDL HttpRequest.idl HttpRequest.idl
Biblioteca Winhttp.lib Winhttp.lib
DLL Winhttp.dll Winhttp.dll