본문 바로가기

개발

asp에서 soap(닷넷웹서비스 - asmx) 통신 예제

asp에서 .Net으로 개발된 웹서비스(.asmx) 통신(호출) 예제입니다.

이 부분은 뭐 달리 할 수 있는 방법도 여러가지겠지만, 그 중 MSSOAP.SoapClient30을 사용한 방법입니다.

제휴 업체에 웹서비스 호출해서 사용하라고 했더니,
당황스럽게도 웹서비스 호출 소스를 내놓으라고 하더군요. ㅡㅡ;
그럼 니네들은 뭘 개발할껀데??
암튼, 코딩해서 보내줬습니다.

 <%
 Dim soapclient, resultXml, xmlNodes
 Dim rnum, m_id, mname, i
 Set soapclient = Server.CreateObject("MSSOAP.SoapClient30")
 soapclient.ClientProperty("ServerHTTPRequest") = True
 '사용할 웹서비스 주소
 soapclient.mssoapinit("http://호출할도메인/웹서비스페이지.asmx?wsdl")
 Set resultXml = soapclient.vMaxRecommendList(1,10)
 ' -------------------------------------------------------------------------
 ' Response.Write(TypeName(resultXml))
 ' resultXml은 string 결과코드, string 결과메세지, XmlDataDocument 결과XML Document 로 구성된 클래스임.
 ' resultXml 의 TypeName을 찍어보시면 IXMLDOMSelection 이라고 찍힙니다.
 ' 이 타입에 대한 참조자료 함께 보내드립니다.
 ' http://msdn.microsoft.com/en-us/library/ms759171(v=VS.85).aspx
 ' -------------------------------------------------------------------------
 If resultXml.item(0).Text = "X00" Then
  Set xmlNodes = resultXml.item(2)
  Set rnum = xmlNodes.getElementsByTagName("RNUM")
  Set m_id = xmlNodes.getElementsByTagName("M_ID")
  Set mname = xmlNodes.getElementsByTagName("MNAME")
  If rnum.length > 0 Then
   For i = 0 To (rnum.length-1)
    Response.Write(mname.item(i).text & "<br>")
   Next
  
  Else
   Response.Write("No Data~!!")
  End If
 
 Else
  ' Error
  Response.Write(resultXml.item(1).Text)
 End If
 Set soapclient = Nothing
%>