ASP: MSXML2.ServerXMLHTTP 사용하여 원격 웹서버 내용 갖고 오기

HTTP를 구현해 놓은 여러 컴포넌트들이 있지만 윈도우2000부터 기본으로 설치되는 MSXML2.ServerXMLHTTP 컴포넌트를 이용하여 원격 웹서버의 내용을 갖고 올수 있다.

가장 기본적인 방법은 다음과 같다.

<%  
sUrl = "http://www.ecplaza.net/"  
set oHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")  
oHttp.Open "GET", sUrl, False  
oHttp.Send ""  
Response.Write oHttp.ResponseText  
Set oHttp = Nothing  
%>  

GET 방법으로 갖고 온 HTML을 화면에 출력하는 루틴이다. POST 방법으로도 요청할 수 있다.

<%  
sUrl = "http://river.ecplaza.net/form.asp"  
set oHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")  
oHttp.Open "POST", sUrl, False  
oHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"  
oHttp.Send "subject=test&contents=message+body"  
Response.Write oHttp.ResponseText  
Set oHttp = Nothing  
%>  

오류 처리는 Send 메쏘드를 호출하기 전에  On Error Resume Next를 적어주고 오류발생 여부를 체크하면 된다.

<%  
sUrl = "http://river.ecplaza.net/form.asp"  
set oHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")  
oHttp.Open "POST", sUrl, False  
oHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"

On Error Resume Next

oHttp.Send "subject=test&contents=message+body"  
If Err Then  
Response.Write "Error:" & oHttp.ParseError.URL & "<br>" & _  
oHttp.ParseError.Reason  
Else  
Response.Write oHttp.ResponseText  
End If  
Set oHttp = Nothing  
%>