Tag: soap

Rails – Savon设置了多个名称空间

我正在使用savon版本2 (使用Ruby on Rails)来调用web服务,我需要为我的Envelope注入一些额外的命名空间。 就像是: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:add="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:newNamespace1="http://someURL.pt/Test1" xmlns:newNamespace2="http://someURL.pt/Test2" xmlns:newNamespace3="http://someURL.pt/Test3" 我目前的代码是: client = Savon.client do wsdl “https://someValidURL?wsdl” namespace “http://someURL.pt/Test1” namespace “http://someURL.pt/Test2” namespace “http://someURL.pt/Test3” end response = client.call( …the webservice call… ) …但在我的请求中,Savon只放置最后一个命名空间 我没有在Savon Git项目中找到任何关于此的文档。 有没有人有这个问题的解决方法? PS-我还检查一个可能的解决方案是将所有xml请求(信封)设置为请求但是……嗯…太像黑客了。 如果这是不可能的,还有其他好的gem可以做到这一点,请告诉我=)

Ruby&Savon SOAP客户端 – 无法找到SOAP操作

第一次使用SOAP客户端,所以不确定我在这里做错了什么。 这是我正在尝试使用的SOAP API: http : //services.carsolize.com/BookingServices/DynamicDataService.svc?wsdl irb(main):018:0> client = Savon.client(wsdl: “http://services.carsolize.com/BookingServices/DynamicDataService.svc?wsdl”, convert_request_keys_to: :camelcase) 无论我传递给client call ,它告诉我: irb(main):022:0> client.call :service_request, :message => {} HTTPI GET request to services.carsolize.com (net_http) Savon::UnknownOperationError: Unable to find SOAP operation: :service_request Operations provided by your service: [] from /var/lib/gems/1.9.1/gems/savon-2.2.0/lib/savon/operation.rb:22:in `ensure_exists!’ from /var/lib/gems/1.9.1/gems/savon-2.2.0/lib/savon/operation.rb:14:in `create’ from /var/lib/gems/1.9.1/gems/savon-2.2.0/lib/savon/client.rb:32:in `operation’ from /var/lib/gems/1.9.1/gems/savon-2.2.0/lib/savon/client.rb:36:in `call’ from (irb):22 […]

如何从ruby客户端解析SOAP响应?

我正在学习Ruby,我编写了以下代码来了解如何使用SOAP服务: require ‘soap/wsdlDriver’ wsdl=”http://www.abundanttech.com/webservices/deadoralive/deadoralive.wsdl” service=SOAP::WSDLDriverFactory.new(wsdl).create_rpc_driver weather=service.getTodaysBirthdays(‘1/26/2010’) 我得到的回应是: #<SOAP::Mapping::Object:0x80ac3714 {http://www.abundanttech.com/webservices/deadoralive} getTodaysBirthdaysResult=#<SOAP::Mapping::Object:0x80ac34a8 {http://www.w3.org/2001/XMLSchema}schema=#<SOAP::Mapping::Object:0x80ac3214 {http://www.w3.org/2001/XMLSchema}element=#<SOAP::Mapping::Object:0x80ac2f6c {http://www.w3.org/2001/XMLSchema}complexType=#<SOAP::Mapping::Object:0x80ac2cc4 {http://www.w3.org/2001/XMLSchema}choice=#<SOAP::Mapping::Object:0x80ac2a1c {http://www.w3.org/2001/XMLSchema}element=#<SOAP::Mapping::Object:0x80ac2774 {http://www.w3.org/2001/XMLSchema}complexType=#<SOAP::Mapping::Object:0x80ac24cc {http://www.w3.org/2001/XMLSchema}sequence=#<SOAP::Mapping::Object:0x80ac2224 {http://www.w3.org/2001/XMLSchema}element=[#, #, #, #, #, #] >>>>>>> {urn:schemas-microsoft-com:xml-diffgram-v1}diffgram=#<SOAP::Mapping::Object:0x80abe6c4 {}NewDataSet=#<SOAP::Mapping::Object:0x80ac1220 {}Table=[#, #<SOAP::Mapping::Object:0x80b778f4 {}FullName="Feiffer, Jules" {}BirthDate="01/26/1929" {}DeathDate=# {}Age=”81″ {}KnownFor=”Cartoonists” {}DeadOrAlive=”Alive”>]>>>> 我很难找出如何解析并在一个漂亮的表中显示返回的信息,甚至只是如何遍历记录并访问每个元素(即FullName,Age等)。 我经历了整个“getTodaysBirthdaysResult.methods – Object.new.methods”并继续努力尝试找出如何访问元素,但后来我进入arrays,我迷路了。 任何可以提供的帮助将不胜感激。