vb 또는 asp에서 다른 웹페이지를 호출하고 싶어질때가 있다.
물론 C#과 같은 언어는 httpRequest 와 같은 객체가 있어 손쉽게 받을수 있지만
vb or asp에서는 WinHttp.WinHttpRequest.5.1 의 객체를 생성하여 사용할수 있다.
GET 방식으로 페이지를 호출할경우
Function getSiteSourceGet( siteURL, params )
Set httpObj = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
httpObj.open "GET", siteURL & "?" & params, False
httpObj.Send()
httpObj.WaitForResponse
If httpObj.Status = "200" Then
getSiteSourceGet = httpObj.ResponseText
Else
getSiteSourceGet = null
End If
End Function
POST 방식으로 페이지를 호출할 경우
Function getSiteSourcePost( siteURL, params )
Set httpObj = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
httpObj.open "POST" , siteURL, False
httpObj.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
'포스트 방식시 위의 라인을 추가해 주어야 한다.
httpObj.Send params
'포스트의 파라미터는 Send 호출시 같이 값을 넘겨 주어야 한다.
httpObj.WaitForResponse
If httpObj.Status = "200" Then
getSiteSourcePost = httpObj.ResponseText
Else
getSiteSourcePost = null
End If
End Function
POST를 이용할시 약간 수정행 주어야 할것이 있는데 Content-Type을 위와 같이 변경해주어야 하며 파라미터를 GET방식과는 다르게 Send 시 값을 넘겨주어야 파라미터값들이 전달되다.
위와 같이 함수를 만들어 사용하면 될것이다.
추가된글 파라미터를 넘길때 GET 방식이던 POST 방식이던 URLEncode 를 해주어야 한다. 그것때문에 한참 헤맸다. 그리고 VB Script로 호출시에는 Server 객체를 사용할수 없음으로 URLEncode 함수를 직접 만들어 사용해야 했다. URLEncode 함수는 쉽게 구할수 있다.
출처 : http://hahakbs.dothost.co.kr/
'Dev > ASP' 카테고리의 다른 글
ASP에서 외부웹사이트 내용 가져오기 (1) | 2011.05.10 |
---|