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에 의해 완료되는 값입니다.
서버 측 스크립트에서는 클라이언트처럼 비동기 요청을 제어하기 위해 콜백 함수를 직접 사용할 수 없으며, 요청을 기다리기 위해 프로그램을 일정 시간 동안 절전 모드로 사용하는 해당 함수도 없습니다. 반환하면 이 방법을 사용하여 일정 시간 동안 기다릴 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
<%
DimWinHttp
WinHttp = Server.CreateObject(WinHttp.WinHttpRequest.5.1) 설정
'매개변수 설정
WinHttp.SetTimeouts 60000, 60000, 60000, 3000 '작업 시간 제한 설정
'WinHttp.SetTimeoutssolveTimeout, connectTimeout, sendTimeout, receiveTimeout
'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 참조자, http://www.baidu.com/ '소스
WinHttp.SetRequestHeader Connection, Close 'Close = 연결을 유지하지 않음, Keep-Alive = 연결 유지(지속적 연결)
'WinHttp.SetRequestHeader Accept-Encoding, gzip, deflate '전송되면 gzip, deflate 압축 인코딩이 반환됩니다.
'WinHttp.SetRequestHeader Content-Length, Len(Str) 'Post 메서드에서 사용되는 콘텐츠 길이입니다.
WinHttp.SetRequestHeader 쿠키, 쿠키를 테스트하세요!
'데이터 보내기
WinHttp.Send '게시 방법: WinHttp.Send(매개변수)
WinHttp.WaitForResponse '반환 요청 대기, XMLHTTP에서도 사용할 수 있습니다.
'출력 결과
Response.Write WinHttp.Status '현재 HTTP 상태
'Response.Write WinHttp.ResponseText '텍스트 데이터
Response.BinaryWrite WinHttp.ResponseBody '바이너리 데이터 스트림 데이터
%>
옵션() 관련:
WinHttpRequestOption_UserAgentString = 0;
WinHttpRequestOption_URL = 1;
WinHttpRequestOption_URLCodePage = 2;
WinHttpRequestOption_EscapePercentInURL = 3;
WinHttpRequestOption_SslErrorIgnoreFlags = 4;
WinHttpRequestOption_SelectCertificate = '13056 = 오류 플래그 무시
WinHttpRequestOption_EnableRedirects = 6; 'True인 경우 요청한 페이지에 점프가 있으면 False로 점프 페이지 정보를 가져오지 않습니다.
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;
방법설명
Abort는 WinHTTP 전송 메서드를 중단합니다.
GetAllResponseHeaders는 모든 HTTP 응답 헤더를 검색합니다.
GetResponseHeader는 HTTP 응답 헤더를 검색합니다.
열기 HTTP 리소스에 대한 HTTP 연결을 엽니다.
Send는 HTTP 요청을 HTTP 서버로 보냅니다.
SetAutoLogonPolicy는 현재 자동 로그인 정책을 설정합니다.
SetClientCertificate HTTPS(Hypertext Transfer Protocol Secure) 서버로 보낼 클라이언트 인증서를 선택합니다.
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 인터페이스를 사용하여 오류 데이터를 제공합니다.
Microsoft Visual Basic Scripting Edition(VBScript)의 Err 개체를 사용하여 설명 및 수치 오류 값을 얻을 수 있습니다.
Microsoft JScript의 Error 개체입니다.
오류 번호의 하위 16비트는 오류 메시지에 있는 값에 해당합니다.
참고 Windows XP 및 Windows 2000의 경우 런타임 요구 사항을 참조하십시오.
참고: Windows XP 및 Windows 2000의 경우 런타임 요구 사항을 참조하세요.
요구사항
최소 지원 클라이언트 Windows XP, Windows 2000 Professional(SP3 포함) Windows XP
최소 지원 서버 Windows Server 2003, Windows 2000 Server SP3
Windows XP 및 Windows 2000에서 WinHTTP 5.0 및 Internet Explorer 5.01 이상용으로 재배포 가능합니다.
Windows XP 및 Windows 2000의 경우 WinHTTP 5.0 및 Internet Explorer 5.01 이상.
IDL HttpRequest.idl HttpRequest.idl
라이브러리 Winhttp.lib Winhttp.lib
DLL Winhttp.dll Winhttp.dll