soapクライアントサンプル

作成したSOAP-RPCサーバのクライアントサンプルは次のようになります。

require 'soap/wsdlDriver'
require 'uri'
require 'nkf'

  lovm = SOAP::WSDLDriverFactory.new('http://localhost/lovemac.wsdl').create_rpc_driver
  lovm.generate_explicit_type = true
  if lovm.serviceStart
    result = lovm.getItemInfoByPrice(1980)
    result.each do | r |
      puts "#{r.name}:#{r.price)}"
    end
    lovm.serviceEnd
  else
    puts "connect error!"
  end
  lms.disconn

SOAP::WSDLDriverFactoryでは作成したwsdlを指定しています。wsdlはスクリプトがアクセス可能な場所に配置してあればどこにあってもかまいません。

サンプルでは、価格が1980以上の商品を検索しリストしています。ここで、resultは先にwsdlで定義したItemInfoResultオブジェクトの配列ItemInfoResultArrayです。