Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > library xmlrpc/client
library xmlrpc/client
要約
XML-RPC クライアントのためのライブラリです。
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}"
Client with XML-RPC fault-structure handling
There are two possible ways, of handling a fault-structure:
by catching a XMLRPC::FaultException exception
require "xmlrpc/client"
# Make an object to represent the XML-RPC server.
server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
begin
# 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}"
rescue XMLRPC::FaultException => e
puts "Error: "
puts e.faultCode
puts e.faultString
end
by calling "call2" which returns a boolean
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
ok, result = server.call2("sample.sumAndDifference", 5, 3)
if ok
sum = result["sum"]
difference = result["difference"]
puts "Sum: #{sum}, Difference: #{difference}"
else
puts "Error: "
puts result.faultCode
puts result.faultString
end
Client using Proxy
You can create a +Proxy+ object onto which you can call methods. This way it looks nicer. Both forms, _call_ and _call2_ are supported through _proxy_ and <i>proxy2</i>. You can additionally give arguments to the Proxy, which will be given to each XML-RPC call using that Proxy.
require "xmlrpc/client"
# Make an object to represent the XML-RPC server.
server = XMLRPC::Client.new( "xmlrpc-c.sourceforge.net", "/api/sample.php")
# Create a Proxy object
sample = server.proxy("sample")
# Call the remote server and get our result
result = sample.sumAndDifference(5,3)
sum = result["sum"]
difference = result["difference"]
puts "Sum: #{sum}, Difference: #{difference}"
クラスとモジュール
| class XMLRPC::Client | Class XMLRPC::Client provides remote procedure calls to a XML-RPC server. |
| class XMLRPC::Client::Proxy | Class XMLRPC::Client::Proxy makes XML-RPC calls look nicer! |
同時にrequireされるライブラリ
| xmlrpc/datetime |