1. 소갯말
일단 버그 있을지도 모릅니다... ㅠㅠ
일단 XMLRPC부터 소개하자면
http://xmlrpc.com/
http://wiki.kldp.org/HOWTO//html/XML-RPC-HOWTO/xmlrpc-howto-intro.html
간단하게 MS의 SOAP과 유사하게,
'XML-RPC는 HTTP를 통한 간단하고 이식성 높은 원격 프로시져 호출 방법이다' 이라고 하네요
(제가 설명을 잘 못해서...)
일단 압축을 여시면 파일을 3가지가 있는데
class_xmlrpc.asp 이하 2가지 파일 (class_hashtable.asp / class_gto.asp) 은
의존성때문에 같이 넣어주어야 할껍니다 -.-;
2. 레퍼런스
- 생성자
* Constructor void xmlRPC() - XMLRPC Class를 생성합니다.
- Properties
* Public String method - XMLRPC 서버측 method를 지정해줍니다.
* Public Mixed data - XMLRPC 서버에 보내줄 데이터를 지정하여 줍니다. 지정하는 순간 XMLRPC 문법에 맞
게 XML문서로 변환됩니다.
* Public Boolean responseStatus - 데이터를 보낸 이후, 응답 상태를 나타냅니다. 문제가 있으면 false값
* Public Array responseData - 데이터를 받고, ASP 데이터형태로 변환합니다.
- Methods
* Public void send(url) - XMLRPC 서버쪽으로 데이터를 송신합니다.
= Arguments
* String url - 데이터를 송신할 XMLRPC 서버의 주소를 지정합니다.
3. 예제
아래 예제는... 필자가 구축한 XMLRPC 서버에 데이터를 전송하여, 데이터를 읽어오는 예제입니다.
video.ucc Method로 Argument로 받은 http://www.youtube.com/watch?v=eSnzCpdKXJ8
아래 주소의 UCC 동영상에 대한 정보를 가져오는 부분입니다.
* 전달받은 원시 XMLRPC Response Data
<methodResponse>
<params>
<param>
<value>
<struct>
<member>
<name>subject</name>
<value>
<string>Solitudes: Natural Relaxation - horizons</string>
</value>
</member>
<member>
<name>contents</name>
<value>
<string>Solitudes: Natural Relaxation - horizons ...</string>
</value>
</member>
<member>
<name>tag</name>
<value>
<string>Solitudes Natural Relaxation horizons</string>
</value>
</member>
<member>
<name>flash</name>
<value>
<string>http://www.youtube.com/v/eSnzCpdKXJ8&f=videos&app=youtube_gdata</string>
</value>
</member>
<member>
<name>thumb</name>
<value>
<string>http://i.ytimg.com/vi/eSnzCpdKXJ8/2.jpg</string>
</value>
</member>
<member>
<name>url</name>
<value>
<string>http://www.youtube.com/watch?v=eSnzCpdKXJ8</string>
</value>
</member>
<member>
<name>publisher</name>
<value>
<string>http://youtube.com</string>
</value>
</member>
<member>
<name>category</name>
<value>
<string>Music</string>
</value>
</member>
</struct>
</value>
</param>
</params>
</methodResponse>
* 코드
<!-- #include virtual="/include/class_hashtable.asp" -->
<!-- #include virtual="/include/class_gto.asp" -->
<!-- #include virtual="/include/class_xmlrpc.asp" -->
<%
Dim objRPC
Set objRPC = New xmlRPC
objRPC.method = "video.ucc"
'// 전달할 데이터입니다. 어느 데이터형이라도 가능합니다.
'// Object일 경우는 Scripting.Dictionary 또는 제가 만든 Hashtable (내부적으로는
Scripting.Dictionary ㅠㅠ) 만 가능합니다.
objRPC.data = "http://www.youtube.com/watch?v=eSnzCpdKXJ8"
objRPC.send("http://*******/api/") '// 보안상 ^^;
If objRPC.responseStatus = True Then
'// XMLRPC Response를 받습니다. 보통 수신받는 변수는 한개일 경우가 대부분입니다.
Dim objData : objRPC.responseData(0)
'// 첫번째로 수신받은 데이터는 struct형으로 Hashtable로 변환되지만...
'// Vbscript 문법상 문제때문에... 내부적으로 원소를 하나가진 배열로밖에 표현이 안됩니다.
'// 이해해주세요 ㅠㅠ
Dim curData : Set curData = objData(0)
End If
Set objRPC = Nothing
Dim curKey
For Each curKey In curData.Keys
Response.Write curKey & " - " & curData.Item(curKey) & "<br />"
Next
%>
* 결과
subject - Solitudes: Natural Relaxation - horizons
contents - Solitudes: Natural Relaxation - horizons ...
tag - Solitudes Natural Relaxation horizons
flash - http://www.youtube.com/v/eSnzCpdKXJ8&f=videos&app=youtube_gdata
thumb - http://i.ytimg.com/vi/eSnzCpdKXJ8/2.jpg
url - http://www.youtube.com/watch?v=eSnzCpdKXJ8
publisher - http://youtube.com
category - Music
4. 알려진 버그
VBScript의 문법의 문제상, 바로 변수에 Object (Hashtable 또는 Scripting.Dictionary) 데이터형을
정의하지 못해서 편법으로 0번째 원소를 가진 배열 만드는 방식으로 처리했습니다.
제가 설명을 잘 못해서... 이해하지 못하신 분들은
class_gto.asp 파일을 열어보시길 권합니다 -.-;
영삼넷
Categories
Recent Posts
Recent Comments
Statistics
- Total Visitors:
- 407123
- Today:
- 6843254
- Yesterday:
- 9754777
IT강국 김영삼 블로그에 오신걸 진심으로 환영합니다.
©2002 영삼넷 // openkr
©2002 영삼넷 // openkr