XMLHTTP 개체 및 해당 메서드————————————————————————
MSXML은 데이터 패킷에서 요청 개체로의 변환 및 전송 작업을 완료할 수 있는 Microsoft.XMLHTTP 개체를 제공합니다.
XMLHTTP 객체를 생성하는 명령문은 다음과 같습니다.
objXML = CreateObject("Msxml2.XMLHTTP") 또는
objXML = CreateObject("Microsoft.XMLHTTP") 설정
' 또는 XMLHTTP 버전 3.0의 경우 다음을 사용합니다.
' Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
개체가 생성된 후 Open 메서드를 호출하여 Request 개체를 초기화합니다.
Poster.open http-방법, URL, 비동기, 사용자 ID, 비밀번호
Open 메소드에는 5개의 매개변수가 포함되어 있으며 처음 3개는 필수이고 마지막 2개는 선택사항입니다(서버에서 인증이 필요할 때 제공됨). 매개변수의 의미는 다음과 같습니다.
http-method: GET 또는 POST와 같은 HTTP 통신 방법
url: XML 데이터를 수신하는 서버의 URL 주소입니다. 일반적으로 ASP 또는 CGI 프로그램은 URL에 지정됩니다.
async: 요청이 비동기인지 여부를 나타내는 부울 플래그입니다. 비동기 통신 모드(true)인 경우 클라이언트는 서버의 응답을 기다리지 않고, 동기 모드(false)인 경우 클라이언트는 다른 작업을 수행하기 전에 서버가 메시지를 반환할 때까지 기다려야 합니다.
userID 서버 인증에 사용되는 사용자 ID
비밀번호 사용자 비밀번호, 서버 인증에 사용됩니다.
XMLHTTP 개체의 Send 메서드가 Open 메서드를 사용하여 Request 개체를 초기화한 후 Send 메서드를 호출하여 XML 데이터를 보냅니다.
Poster.send XML 데이터
Send 메소드의 매개변수 유형은 문자열, DOM 트리 또는 모든 데이터 스트림이 될 수 있는 Variant입니다. 데이터를 보내는 방법에는 동기식과 비동기식의 두 가지가 있습니다. 비동기 모드에서는 데이터 패킷이 전송되면 전송 프로세스가 종료되고 클라이언트는 다른 작업을 수행합니다. 동기 모드에서는 클라이언트가 전송 프로세스를 종료하기 전에 서버가 확인 메시지를 반환할 때까지 기다립니다.
XMLHTTP 객체의 ReadyState 속성은 요청을 처리하는 서버의 진행 상황을 반영할 수 있습니다. 클라이언트 프로그램은 이 상태 정보를 기반으로 해당 이벤트 처리 방법을 설정할 수 있습니다. 속성 값과 그 의미는 다음 표에 나와 있습니다.
값 설명
0 Response 객체가 생성되었지만 XML 문서 업로드 프로세스가 아직 종료되지 않았습니다.
1 XML 문서가 로드되었습니다.
2 XML 문서가 로드되어 처리 중입니다.
3 XML 문서의 일부가 구문 분석되었습니다.
4 문서가 구문 분석되었으며 클라이언트는 반환 메시지를 수락할 수 있습니다. 클라이언트는 반환 메시지를 받은 후 간단한 처리를 수행하여 기본적으로 C/S 간의 상호 작용 주기를 완료합니다. 클라이언트는 XMLHTTP 개체의 속성을 통해 응답을 받습니다.
● responseTxt: 메시지를 텍스트 문자열로 반환합니다.
● responseXML: 반환 메시지를 XML 문서로 처리하며 서버 응답 메시지에 XML 데이터가 포함될 때 사용됩니다.
● responseStream: 반환된 메시지를 Stream 개체로 처리합니다.
다음 xml 파일은 동적으로 생성되어 xmlHTTP를 사용하여 최종적으로 전송됩니다. 이는 클라이언트 JavaScript 스크립트의 내용입니다. 물론 서버에 작성할 수도 있지만 이에 따라 몇 가지 사항을 변경해야 합니다. , 사용법을 이해하세요)
var xmlDoc=new ActiveXObject("MSXML2.DOMDocument");
flag=xmlDoc.loadXML("");
newNode =xmlDoc.createElement("인코딩")
MarkNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartMark")
newNode.text=StartMark;
MarkNode.appendChild(newNode)
newNode =xmlDoc.createElement("EndMark")
newNode.text=EndMark;
MarkNode.appendChild(newNode)
newNode =xmlDoc.createElement("날짜")
DateNode=xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartDate");
newNode.text=시작 날짜;
DateNode.appendChild(newNode)
newNode =xmlDoc.createElement("EndDate")
newNode.text=EndDate;
DateNode.appendChild(newNode);
newNode =xmlDoc.createElement("수량")
SLNode =xmlDoc.documentElement.appendChild(newNode);
newNode =xmlDoc.createElement("StartSL")
newNode.text=StartShuL
SLNode.appendChild(새 노드)
newNode =xmlDoc.createElement("EndSL");
newNode.text=EndShuL
SLNode.appendChild(newNode);
newNode =xmlDoc.createElement("단가")
DJNode =xmlDoc.documentElement.appendChild(새 노드)
newNode =xmlDoc.createElement("StartDJ")
newNode.text=StartDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("EndDJ")
newNode.text=EndDanJ;
DJNode.appendChild(newNode);
newNode =xmlDoc.createElement("금액")
JENode =xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("StartJE")
newNode.text=StartJinE
JENode.appendChild(newNode)
newNode =xmlDoc.createElement("EndJE")
newNode.text=EndJinE
JENode.appendChild(newNode)
newNode =xmlDoc.createElement("웨어하우스 코드")
newNode.text=CK;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("티켓 번호")
newNode.text=RKPH;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("단위 코드")
newNode.text=회사명;
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("BiaoShi")
newNode.text=비아오시
xmlDoc.documentElement.appendChild(newNode)
newNode =xmlDoc.createElement("FindCate")
newNode.text=FindCate
xmlDoc.documentElement.appendChild(newNode)
var xh =new ActiveXObject("MSXML2.XMLHTTP")
xh.open("POST","Find.asp",false)
xh.setRequestHeader("Content-Type","text/xml")
xh.setRequestHeader("콘텐츠 유형","gb2312")
xh.send(xmlDoc);
각 newNode의 텍스트 값은 클라이언트 양식에 입력된 값인 변수입니다.