12. 使用 Ruby 进行 XML-RPC

(XML-RPC 指南的这一部分由 Michael Neumann 慷慨提供。)

Ruby 是一种面向对象的脚本语言。 它在日本已经拥有大量的用户,并且在其他地方也变得越来越流行。

要使用 Ruby 进行 XML-RPC,您必须首先安装 Yoshida Masato 的 xmlparser 模块(James Clark 的 expat 解析器的包装器)。 这可以在 Ruby 应用程序存档 中找到。

然后,您必须使用以下命令安装 xmlrpc4r

bash$ tar -xvzf xmlrpc4r-1_2.tar.gz
bash$ cd xmlrpc4r-1_2
bash$ su root -c "ruby install.rb"

12.1. Ruby 客户端

这是一个简单的 Ruby 客户端

require "xmlrpc/client"

# Make an object to represent the XML-RPC server.
server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")

# Call the remote server and get our result
result = server.call("sample.sumAndDifference", 5, 3)

sum = result["sum"]
difference = result["difference"]

puts "Sum: #{sum}, Difference: #{difference}"

12.2. Ruby 服务器

这是一个简单的 Ruby 服务器

require "xmlrpc/server"

s = XMLRPC::CGIServer.new

s.add_hanlder("sample.sumAndDifference") do |a,b|
  { "sum" => a + b, "difference" => a - b }
end

s.serve

这也可以这样写

require "xmlrpc/server"

s = XMLRPC::CGIServer.new

class MyHandler
  def sumAndDifference(a, b)
    { "sum" => a + b, "difference" => a - b }
  end
end

s.add_handler("sample", MyHandler.new)
s.serve

要以独立模式运行任何一个服务器,请将第二行代码替换为以下内容

s = XMLRPC::Server.new(8080)