이 문서에서는 주로 POST 요청을 시뮬레이션하여 데이터를 비동기적으로 제출하는 방법을 소개합니다. 이 문서에서는 MSXML2.SERVERXMLHTTP.3.0을 사용하여 POST 요청을 구현합니다.
때로는 원격 웹사이트에서 특정 정보를 얻어야 하는 경우가 있는데, 서버는 GET 방식을 제한하고 POST 데이터를 통해서만 제출할 수 있습니다. 이때 ASP를 통해 게시물 데이터 제출을 시뮬레이션할 수 있습니다. . 다음은 제가 직접 작성한 비교적 간결하고 이해하기 쉬운 함수입니다.
우선, asp는 일반적으로 gbk이고 대부분의 표준 웹사이트는 utf-8을 사용하기 때문에 인코딩 설정 기능이 필요합니다. 그래서 전환이 필요합니다.
다음과 같이 코드 코드를 복사합니다.
함수 BytesToBstr(body,Cset)
희미한 객체 스트림
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write 본문
objstream.위치 = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
objstream = 아무것도 설정하지 않음
기능 종료
두 번째 단계는 구성 요소를 사용하여 게시물 데이터를 제출하는 것입니다. 여기서는 MSXML2.SERVERXMLHTTP.3.0을 사용했습니다. 물론 다른 것들도 사용할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
함수 PostHTTPPage(url,data)
희미한 HTTP
Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0")를 설정합니다.
Http.open "POST",url,false
Http.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
Http.send(데이터)
Http.readystate<>4이면
종료 기능
다음과 같은 경우 종료
PostHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")
http=아무것도 설정하지 않음
err.number<>0이면 err.Clear
기능 종료
작동 방식은 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다.
PostHTTPPage("www.vevb.com","str1=a&str2=b&str3=c")