Demo WebService 公开 AddNumber 方法:
[WebMethod]
public int AddNumber( int x, int y)
{
return x + y;
}
public int AddNumber( int x, int y)
{
return x + y;
}
用 Ruby 实现 WebServices 调用:
require 'soap/wsdlDriver'
wsdl = "http://localhost/WebAppTest/WebServicesDemo/Demo.asmx?wsdl"
params = {:x => 1, :y => 4}
drv = SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver
#Method1:
result = drv.AddNumber(params)
#Method2:
result = drv.send("AddNumber", params)
p result["AddNumberResult"] # Return 5
你可以通过 rpc_driver 的实例直接调用 AddNumber 方法如 #Method1 所示。也可以通过 send 方法名的方式动态调用,如 #Method2 所示。参数是一个Hash,其 key 值必须和 WebMethod 定义的参数名一致。返回值也是一个Hash, 其key值是 "#{MethodName}Result "。