Используйте WinHttpRequest для подделки информации заголовка HTTP, подделки Referer и другой информации. Поскольку Microsoft заблокировала объект XmlHttp, некоторая информация заголовка HTTP не может быть подделана, но объект WinHttp.WinHttpRequest.5.1 действительно может успешно подделать информацию заголовка всех HTTP-запросов!
Из msdn мы узнали, что WinHttp.WinHttpRequest.5.1 является базовым объектом msxml 4.0, а это означает, что XMLHTTP/ServerXMLHTTP также инкапсулируется на его основе. Использование WinHttpRequest примерно такое же, как и XmlHttp.
WaitForResponse При отправке запроса в асинхронном режиме вы можете использовать этот метод для управления процессом запроса. Указанное время ожидания в секундах — это значение, которое должно быть завершено методом асинхронной передачи SetTimeouts.
В серверных сценариях вы не можете напрямую использовать функции обратного вызова для управления асинхронными запросами, как это делает клиент, и нет соответствующей функции, позволяющей использовать программу для сна в течение определенного периода времени. Следовательно, для ожидания запроса. return, мы можем использовать этот метод для ожидания в течение определенного периода времени.
Скопируйте код кода следующим образом:
<%
Димвинхттп
Установите WinHttp = Server.CreateObject(WinHttp.WinHttpRequest.5.1)
'Установить параметры
WinHttp.SetTimeouts 60000, 60000, 60000, 3000 'Установка тайм-аута операции
'WinHttp.SetTimeouts
'resolveTimeout = 10000 'Тайм-аут разрешения DNS-имен, 10000 миллисекунд.
'connectTimeout = 10000 'Тайм-аут установления соединения Winsock, 10000 миллисекунд.
'sendTimeout = 120000 'Таймаут отправки данных, 120000 миллисекунд.
'receiveTimeout = 60000 'Таймаут получения ответа, 60000 миллисекунд.
WinHttp.Option(4) = 13056 'Игнорировать флаг ошибки
WinHttp.Option(6) = False 'Если это значение True, оно будет автоматически переходить при перенаправлении запрошенной страницы. False не будет автоматически переходить и перехватывать статус 302, возвращаемый сервером.
WinHttp.Open GET, http://www.baidu.com/, False 'GET или POST, URL, False синхронный режим; Истинный асинхронный режим;
'Составляем информацию HTTP-заголовка
WinHttp.SetRequestHeader Accept, */* 'Принять тип данных
WinHttp.SetRequestHeader Accept-Language, zh-cn,zh 'Язык системы пользователя
WinHttp.SetRequestHeader User-Agent, Mozilla/6.0 'Информация о браузере пользователя
WinHttp.SetRequestHeader Content-Type, application/x-www-form-urlencoded 'Метод кодирования
WinHttp.SetRequestHeader Referer, http://www.baidu.com/ 'Источник
Соединение WinHttp.SetRequestHeader, Close 'Close = не поддерживать соединение, Keep-Alive = сохранять соединение (постоянное соединение)
'WinHttp.SetRequestHeader Accept-Encoding, gzip, deflate 'При отправке будет возвращена сжатая кодировка gzip, deflate
'WinHttp.SetRequestHeader Content-Length, Len(Str) 'Длина контента, используемая в методе Post.
WinHttp.SetRequestHeader Cookie, тестовый файл cookie 'Установить файл cookie!
'Отправить данные
WinHttp.Send 'Метод публикации: WinHttp.Send (параметр)
WinHttp.WaitForResponse 'Ожидание запроса на возврат, также может использоваться в XMLHTTP
'Результаты вывода
Response.Write WinHttp.Status 'Текущий статус HTTP
'Response.Write WinHttp.ResponseText 'Текстовые данные
Response.BinaryWrite WinHttp.ResponseBody 'Данные потока двоичных данных
%>
Связано с Option():
WinHttpRequestOption_UserAgentString = 0;
WinHttpRequestOption_URL = 1;
WinHttpRequestOption_URLCodePage = 2;
WinHttpRequestOption_EscapePercentInURL = 3;
WinHttpRequestOption_SslErrorIgnoreFlags = 4;
WinHttpRequestOption_SelectCertificate = 5; '13056 = Игнорировать флаги ошибок
WinHttpRequestOption_EnableRedirects = 6; 'Когда True, когда происходит переход на запрошенную страницу, захватить информацию о странице перехода, наоборот.
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_EnableCertificateRedictionCheck = 18;
МетодОписание
Abort прерывает метод отправки WinHTTP.
GetAllResponseHeaders извлекает все заголовки ответов HTTP.
GetResponseHeader извлекает заголовки ответов HTTP.
Открыть Открывает HTTP-соединение с HTTP-ресурсом.
Отправить отправляет HTTP-запрос на HTTP-сервер.
SetAutoLogonPolicy устанавливает текущую политику автоматического входа в систему.
SetClientCertificate Выбирает сертификат клиента для отправки на сервер HTTPS.
SetCredentials Устанавливает учетные данные, которые будут использоваться с HTTP-сервером (исходным или прокси-сервером).
SetProxy устанавливает информацию о прокси-сервере.
SetRequestHeader Добавляет, изменяет или удаляет заголовок HTTP-запроса.
SetTimeouts указывает в миллисекундах индивидуальное время, прошедшее для операции отправки/получения компонента.
WaitForResponse Указывает время ожидания (в секундах) для асинхронного метода передачи для завершения значения SetTimeouts.
Объект WinHttpRequest определяет следующие свойства.
Описание типа доступа к свойству
Параметр Чтение/запись устанавливает или извлекает значение параметра WinHTTP.
ResponseBody Только для чтения Получает тело объекта ответа в виде массива беззнаковых байтов.
ResponseStream только для чтения. Получите IStream как объект ответа.
ResponseText Только для чтения: текст, полученный из тела объекта ответа.
Код состояния HTTP, доступный только для чтения, с момента последнего получения ответа.
StatusText только для чтения получает текст статуса HTTP.
События
Объект WinHttpRequest определяет следующие события.
Следующие события определяются объектом WinHttpRequest.
Описание события
OnError Возникает при возникновении ошибки во время выполнения приложения.
Происходит при возникновении ошибки во время выполнения приложения.
OnResponseDataAvailable Происходит, когда из ответа доступны данные.
Происходит, когда доступны данные ответа.
OnResponseFinished Происходит, когда данные ответа завершены.
Происходит, когда данные ответа полны.
OnResponseStart Происходит, когда начинают поступать данные ответа.
Происходит, когда начинают поступать данные ответа.
Примечания
Объект WinHttpRequest использует интерфейс IErrorInfo для предоставления данных об ошибках.
Объект WinHttpRequest использует интерфейс IErrorInfo для предоставления данных об ошибках.
Описание и числовое значение ошибки можно получить с помощью объекта Err в Microsoft Visual Basic Scripting Edition (VBScript).
и объект Error в Microsoft JScript.
Младшие 16 бит номера ошибки соответствуют значениям, найденным в сообщениях об ошибках.
Примечание. Для Windows XP и Windows 2000 см. Требования к времени выполнения.
Примечание. Для Windows XP и Windows 2000 см. Требования к среде выполнения.
Требования
Минимальный поддерживаемый клиент Windows XP, Windows 2000 Professional с SP3 Windows XP
Минимальный поддерживаемый сервер Windows Server 2003, Windows 2000 Server с пакетом обновления 3 (SP3)
Распространяется для WinHTTP 5.0 и Internet Explorer 5.01 или более поздней версии в Windows XP и Windows 2000.
WinHTTP 5.0 и Internet Explorer 5.01 или выше для Windows XP и Windows 2000.
IDL HttpRequest.idl HttpRequest.idl
Библиотека Winhttp.lib Winhttp.lib
DLL Winhttp.dll Winhttp.dll