Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

root/branches/1_5/sample/soapheader/authheader/client2.rb

Revision 1843, 0.9 kB (checked in by nahi, 2 years ago)
  • reorganize sampless
Line 
1 require 'soap/rpc/driver'
2 require 'soap/header/simplehandler'
3
4 server = ARGV.shift || 'http://localhost:7000/'
5
6 class ClientAuthHeaderHandler < SOAP::Header::SimpleHandler
7   MyHeaderName = XSD::QName.new("http://tempuri.org/authHeader", "auth")
8
9   attr_accessor :sessionid
10
11   def initialize
12     super(MyHeaderName)
13     @sessionid = nil
14   end
15
16   def on_simple_outbound
17     if @sessionid
18       { "sessionid" => @sessionid }
19     end
20   end
21
22   def on_simple_inbound(my_header, mustunderstand)
23     @sessionid = my_header["sessionid"]
24   end
25 end
26
27 ns = 'http://tempuri.org/authHeaderPort'
28 serv = SOAP::RPC::Driver.new(server, ns)
29 serv.add_method('login', 'userid', 'passwd')
30 serv.add_method('deposit', 'amt')
31 serv.add_method('withdrawal', 'amt')
32
33 h = ClientAuthHeaderHandler.new
34
35 serv.headerhandler << h
36
37 serv.wiredump_dev = STDOUT
38
39 sessionid = serv.login('NaHi', 'passwd')
40 h.sessionid = sessionid
41 p serv.deposit(150)
42 p serv.withdrawal(120)
Note: See TracBrowser for help on using the browser.