Creando cliente para servicio Whois:
require 'savon'
client = Savon.client(wsdl:'http://www.webservicex.net/whois.asmx?WSDL',proxy: 'http://<usuario>:<password>@host:port')
El segundo parámetro puede omitirse si no estás tras un proxy.
Para ver las operaciones disponibles por el servicio web:
client.operations
-> [:get_who_is]
Esta operación recibe como parámetro el HostName. Esto no lo pude consultar con savon, tuve que hacerlo con la especificación del servicio.
response = client.call(:get_who_is, message:{"HostName"=>"www.google.com"})
Creando cliente para servicio de estadísticas:
client = Savon.client(wsdl:'http://www.webservicex.net/Statistics.asmx?WSDL', proxy: 'http://<usuario>:<password>@host:port')client.operations
-> [:get_statistics]
parameters = ["double"=>[1.0, 2.0]]
response = client.call(:get_statistics, message:{"X"=>parameters})
response.body
-> {:get_statistics_response=>{:sums=>"3", :average=>"1.5", :standard_deviation=
>"0.5", :skewness=>"0.5", :kurtosis=>"-2.5", :@xmlns=>"http://www.webserviceX.NE
T"}}