첫째, 웹 페이지란 무엇입니까?
웹 페이지는 코드이지만 실제로는 문서 형식입니다. 브라우저는 이 형식의 문서를 기계가 이해할 수 있는 언어로 번역합니다.
2. 타오바오에서 쇼핑하는 것을 예로 들어 봅시다.
1. 타오바오에서 쇼핑할 때는 먼저 사야 할 물건을 골라야 합니다. 웹 사이트, 즉 당신이 원하는 물건 (목표 페이지) 에 해당해야 합니다.
2. 포장 및 납품 방법을 지정합니다. 깨지기 쉬운 물건은 스펀지 포장이 필요합니까, 운송 방식은 택배입니까, 아니면 보통우편입니까? 여기서 우리가 선택한 배달 방식은 xmlhttp 입니다. Xmlhttp 를 선택해야 하는 이유 ? 이것은 당신이 운송하려는 화물의 성격 때문입니다. 운송할 화물은 XML 형식의 문서입니다. (웹 코드는 실제로 XML 형식의 문서이며 브라우저는 이 문서를 해석할 책임이 있습니다.) 따라서 XML 형식의 http 운송 수단을 포장하도록 지정했습니다. 이 소포의 택배회사는 microsoft.xmlhttp 입니다.
Http = server.createobject ("microsoft.xmlhttp")//택배사 선택.
Http.open "get", URL, false // 배송 상세 정보.
Http.send() // 주문합니다.
인터넷에서 물건을 산 사람들은 택배회사에서 몇 가지 배송 상태를 확인할 수 있다는 것을 알고 있습니다. 화물이 발송되고 도중에 물건을 받습니다. 그리고 우리가 보낸 xmlhttp 포장 화물도 이 상태 조회를 받아들인다.
Http.readystate 의 상품에는 네 가지 상태가 있습니다. 일반적으로 첫 번째 상태는 "발송됨" 이고 네 번째 상태는 "수신됨" 입니다. Readystate 의 값은 4 인 1 입니다.
즉, Http.readystate=4 는 웹 페이지가 다운로드되었음을 의미합니다 (물품이 이미 집으로 배달됨).
만약 당신이 화물을 받는다면, 당신은 그것들이 자신의 요구에 부합하는지 확인해야 합니다. Xmlhttp 가 전송하는 내용에 중국어 디스플레이가 포함되어 있으면 깨질 수 있기 때문에 코드를 바꿔야 합니다.
여기서 주목해야 할 점은 코드 변환을 위해서는 DOM 객체 대신 이진 데이터를 반환해야 한다는 것입니다. 따라서 "Http.responseXml" 대신 "Http.responseBody" 로 작성해야 합니다
5. 트랜스코딩은 adodb.stream 구성 요소의 메소드를 통해 수행할 수 있습니다. 이 구성 요소를 캡슐화하는 함수를 작성할 수 있습니다.
함수 bytesToBstr(body, Cset)
대상 흐름 흐리게 하기
Set objstream = server.createobject ("adodb.stream")//구성 요소 인스턴스 만들기.
Objstream. 유형 =1
Objstream. 모드 =3
Objstream. 열다
Objstream. 본문 쓰기//내용 쓰기, 즉 당신이 받은 물건.
Objstream. 위치 = 0
Objstream. 유형 = 2
Objstream. 문자 집합 = Cset
BytesToBstr = objstream 입니다. 텍스트를 읽습니다
Objstream. 닫기
Set objstream = nothing
기능을 종료합니다
여기 bytesToBstr 함수를 하나 쓰겠습니다. bytesToBstr 의 대/소문자를 주의하세요. 인터넷에서 많은 예의 첫 번째 B 는 대문자이지만 호출할 때는 소문자입니다. 대/소문자를 구분하지 않는 ASP 에서는 상관없지만 다른 대부분의 프로그래밍 언어는 대/소문자를 구분하기 때문에 매우 나쁜 프로그래밍 습관입니다.
Gethttppage = bytestobstr (http.responsebody, "GB 23 12") 호출 함수 트랜스코딩.
Set http=nothing xmlhttp 링크를 닫는 것은 지급을 접수하고 거래를 마감하는 것과 같습니다.
마이크로소프트. XMLHTTP 는 Microsoft 의 구성 요소입니다. 사용하는 IIS 서비스와 IE 브라우저는 모두 Microsoft 이기 때문에 Microsoft.XMLHTTP 를 볼 수 있습니다. 다른 브라우저를 사용하면 document.xmlHttp. 2 가 될 수 있습니다. 본질적으로 동일하지만 서버측과 클라이언트를 사용할 때는 동기화와 비동기에 주의해야 합니다.