Tag: savon

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 […]

Savon:如何将标题从改为或其他不同的东西

在萨翁,有没有办法改变 成为 还是别的什么? 我已经尝试在请求块中添加一个额外的标头标签,如下所示: soap.header[‘soap:Header’] 但那不行。 我浏览过Savon Docs并且没有找到任何地方来改变那个标签,只能通过手动构建XML。

connect:SSL_connect返回= 1 errno = 0 state = SSLv3读取服务器证书B:证书validation失败(OpenSSL :: SSL :: SSLError)

我很难获得SSL来validation证书。 我完全不了解证书的运作方式,因此这是一个很大的障碍。 这是运行脚本时出现的错误: c:/Ruby191/lib/ruby/1.9.1/net/http.rb:611:in `connect’: SSL_connect returned=1 e rrno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL ::SSL::SSLError) 这是相关的代码: client = Savon::Client.new order_svc request = client.create_empty_cart { |soap, http| http.auth.ssl.cert_file = ‘mycert.crt’ http.auth.ssl.verify_mode = :none http.read_timeout = 90 http.open_timeout = 90 http.headers = { “Content-Length” => “0”, “Connection” => “Keep-Alive” } soap.namespaces[“xmlns:open”] = “http://schemas.datacontract.org/2004/07/Namespace” […]

使用Savon / Ruby复制XML请求

我试图避免使用Nokogiri/Builder来构建我的XML,并希望在Ruby 2.0.0中使用Savon gem。 我有以下要求复制的请求: 1 到目前为止我有这个: def soap_client soap_client = Savon.client( wsdl: “http://10.10.10.10/ListApi.svc?wsdl” headers: {“Authorization” => “Basic”}, basic_auth: [‘username’, ‘password’], env_namespace: :s, ssl_verify_mode: :none, log: true, :pretty_print_xml => true ) end 然后soap_client.call :get_list, message: {‘id’ => 1}返回: 1 我无法弄清楚如何完全复制第一个请求。 GetList上的tns: namespace是错误的,我也无法复制<listRequest xmlns:a = piece。 有关如何在萨翁内做到这一点的任何想法?

使用Savon添加产品以连接到Magento API

我有代码在Ruby中列出产品,但我正在努力添加产品,这是我的代码,我正在使用savon gem for HTTP / SOAP请求,基于这里的代码http://www.polyvision。组织/ 2011/10/02 /使用-magento的皂-API与-ruby和-萨翁/ # Insert some products … newproductdata = [ [“name” , “test product”], [“websites” , [1]], [“short_description” , ‘short description’], [“description” , ‘description’], [“status” , 1], [“weight” , 0], [“tax_class_id” , 1], [“categories” , [3]], [“price” , 12.05] ] begin response = client.request :call do soap.body = {:session […]

如何阻止Savon为soap.body添加前缀

这就是我创建一个客户端的方式: @client = Savon::Client.new do wsdl.document = my_document wsdl.endpoint = my_endpoint end 这就是我得到回应的方式: @response = @client.request :the_action do soap.body = xml soap.body = {“applicationId” => my_application_id } end 但是,这会生成以下xml: “XXXXXXXXXXXXXX” 由于前缀,我的soap服务错误。 如果我这样做,它的工作原理: @response = @client.request :the_action do soap.body = “#{my_application_id}” end 然而,由于各种原因,这是一种痛苦。 有没有办法阻止savon附加前缀? 使用savon 0.9.6。

如何在Savon中使用xsi:types的对象

我正在尝试使用Savon来发出一些SOAP请求,但我担心我需要超越基础知识。 我需要发送以下内容: value 现在,如果我不必指定xsi:type,那将是一个简单的问题: client.method_name { |soap| soap.body = {:parameter => ‘value’} } 问题是参数中的xsi:type; 由于我使用的Web服务是围绕多态建立的,我需要明确指定参数的类型。 有什么方法可以做到这一点(最好不必生成我自己的XML?)我真的很想放弃soap4r 🙂 谢谢!

为什么在使用savon进行ruby soap通信时,“wsdl”命名空间会插入操作名称?

我正在尝试访问我无法控制的SOAP服务。 其中一个操作称为ProcessMessage 。 我按照示例生成了一个SOAP请求,但是我收到一条错误,说该操作不存在。 我将问题追溯到信封体生成的方式。 USER 658e702d5feff1777a6c741847239eb5d6d86e48 2010-02-18T02:05:25Z password …… ProcessMessage标签应该是: 这就是样本Java应用程序生成它时的工作原理。 该标记是我的Ruby应用程序生成的示例和示例Java应用程序之间的唯一区别。 有没有办法摆脱那个标签前面的”wsdl:”命名空间并添加这样的属性。 除此之外,有没有办法强制动作不是通过像身体其他部分一样传递出来的? 这是我的代码: require ‘rubygems’ require ‘savon’ client = Savon::Client.new “https://gmservices.pp.gm.com/ProcessMessage?wsdl” response = client.process_message! do | soap, wsse | wsse.username = “USER” wsse.password = “password” soap.namespace = “http://www.starstandards.org/webservices/2005/10/transport” #makes no difference soap.action = “ProcessMessage” #makes no difference soap.input = “ProcessMessage” #makes no […]

使用Savon 2发送原始XML

我正在尝试使用Savon将请求发送到Web服务。 我正在使用的服务需要嵌套的命名空间,我还没有想出如何在请求中提供它们。 我试图手工制作请求(实际上是用nokogiri)并发送生成的xml: client.call(:some_op, :message=>{:”op”=>””}) 但savon逃脱了字符串并发送<elem/> 如何在不转义的情况下发送原始xml?

我如何使用savon嵌套属性! 哈希?

我正在考虑使用Ruby savon for SOAP。 出于纯粹的自虐原因,我必须处理具有属性的SOAP元素。 所以,没问题,savon docs网站上有一个例子突出了这个能力: { :person => “Eve”, :attributes! => { :person => { :id => 666 } } }.to_soap_xml “Eve” 我的问题是如何在子元素上设置属性,例如,我将一个地址子元素添加到person: { :person => {:address => “”}, :attributes! => { :person => { :id => 666 } } }.to_soap_xml 现在我想为地址元素添加一个id属性: 如果我在属性哈希中嵌套地址,那就不行了: { :person => {:address => “”}, :attributes! => { :person […]