轻灵,内省,质朴,有为

XML-PRC以及在Tcl中的使用

+1 投票

XML-PRC (XML Remote Procedure Call),顾名思义,就是通过XML实现远程过程调用(RPC)。


Tcl中的XML-PRC

XML-PRC 规范概要

XML-RPC请求.xml
POST /RPC2 HTTP/1.0
User-Agent: Frontier/5.1.2 (WinNT)
Host: betty.userland.com
Content-Type: text/xml
Content-length: 181

<?xml version="1.0"?>
<methodCall>
   <methodName>examples.getStateName</methodName>
   <params>
      <param>
         <value><i4>41</i4></value>
      </param>
   </params>
</methodCall>
XML-RPC响应.xml
HTTP/1.1 200 OK
Connection: close
Content-Length: 158
Content-Type: text/xml
Date: Fri, 17 Jul 1998 19:55:08 GMT
Server: UserLand Frontier/5.1.2-WinNT

<?xml version="1.0"?>
<methodResponse>
   <params>
      <param>
         <value><string>South Dakota</string></value>
      </param>
   </params>
</methodResponse>

最新提问 9月 4, 2015 分类:API扩展 | 用户: 风行水上 (-30 分)
修改于 9月 4, 2015 用户:风行水上

1个回答

0 投票

基于TclSOAP的XML-RPC客户端示例

示例代码: TclSOAP-XMLRPC-client.tcl
package require XMLRPC
package require SOAP

# 定义接口
XMLRPC::create UserLogin \
  -name "user.login" \
  -proxy http://some.host.net/xmlrpc.cgi \
  -params {user string passwd string}

# 调用
UserLogin "tcler" "i love you"

其中:

  • "-name"选项是XML-RPC的"methodName"
  • 第一个参数(例子中是"UserLogin")是要创建的的本地proc的名称
  • "-params"指定要传递的参数名称和类型

如果想观察一下传输的数据内容,可以用如下的示例

示例代码: TclSOAP-debug-xmlrpc.tcl
proc debug_xmlrpc {method url xml} {
    puts "$xml"
}

SOAP::configure user.login -transport debug_xmlrpc


最新回答 9月 4, 2015 用户: 风行水上 (-30 分)
修改于 9月 4, 2015 用户:风行水上
XML-RPC容易理解,SOAP又是什么东东呢
有哪些XML-RPC的实际应用
...