С классом GetCursOnDateXML все достаточно
...
С классом GetCursOnDateXML все достаточно очевидно. В его конструктор достаточно передать дату, что мы и делаем в строке 26 листинга get_curs.rb. Класс GetCursOnDateXMLResponse выглядит несколько сложнее. В нем определен метод getCursOnDateXMLResult который, судя по всему, и возвращает результат. Но в каком формате? Давайте заглянем в WSDL-файл и найдем там описание типа GetCursOnDateXMLResult: ... <s:element minOccurs="0" maxOccurs="1" name="GetCursOnDateXMLResult"> <s:complexType mixed="true"> <s:sequence> <s:any/> </s:sequence> </s:complexType> </s:element> ... Из этого фрагмента можно заключить, что GetCursOnDateXMLResult - это список "чего угодно" (s:any). В таких ситуациях на помощь приходит включение отладочного вывода (см. строку 23 листинга get_curs.rb) и irb - интерактивная консоль Ruby. При помощи irb можно наблюдать как исполняется код по мере его написания.
Итак, запускаем irb (из директории где находятся наши файлы), загружаем библиотеку SOAP4R и клиентские заглушки:
$ irb irb(main):001:0> require 'rubygems'
=> true
irb(main):002:0> require_gem 'soap4r'
=> true
irb(main):003:0> require 'defaultDriver.rb'
=> true
irb(main):004:0> Создаем объект-драйвер для работы с веб-сервисом и включаем отладочный вывод:
irb(main):004:0> serv = DailyInfoSoap.new
=> #<DailyInfoSoap:#<SOAP::RPC::Proxy:http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx>>
irb(main):005:0> serv.wiredump_dev = STDERR
=> #<IO:0xb7c4ff60>
irb(main):006:0> Далее создаем запрос с текущей датой и отправляем его на сервер:
irb(main):006:0> request = GetCursOnDateXML.new(DateTime.now)
=> #<GetCursOnDateXML:0xb76797d0 @on_date=#<DateTime: 70695916331796971/28800000000,1/6,2299161>>
irb(main):007:0> response = serv.getCursOnDateXML(request)
Wire dump:
= Request
! CONNECT TO www.cbr.ru:80 ! CONNECTION ESTABLISHED POST /DailyInfoWebServ/DailyInfo.asmx HTTP/1.1 SOAPAction: "http://web.cbr.ru/GetCursOnDateXML" Content-Type: text/xml; charset=utf-8 User-Agent: SOAP4R/1.5.8 (/187, ruby 1.8.6 (2007-03-13) [i586-linux-gnu]) Date: Tue, 09 Sep 2008 19:36:45 GMT Content-Length: 405 Host: www.cbr.ru
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий