Tag: 肥皂

使用Savon在Ruby on Rails中调用SOAP在包络和主操作方面变得奇怪

在使用Savon.rb的rails项目中,我试图进行一个非常复杂的SOAP调用。 至少复杂到Savon构建器的扩展很麻烦所以我决定直接操作:xml。 首先我发起客户: @client = Savon.client( :endpoint => ‘https://testservice.postnl.com/CIF_SB/BarcodeWebService/1_1/BarcodeWebService.svc’, :wsdl => ‘https://testservice.postnl.com/CIF_SB/BarcodeWebService/1_1/?wsdl’) 然后我打电话的形状为: @request = @client.build_request(:generate_barcode, xml: %Q{ … see soap call (with ruby interpolation) … } 我添加了一个格式正确的l Time.now, format: :postnl_api字符串,其余的仍然是硬编码的。 包括消息号。 以下是Savon在这种情况下实际调用的方式,如使用@request.body检索的。 我的应用程序中的SOAP调用 http://postnl.nl/cif/services/BarcodeWebService/IBarcodeWebService/GenerateBarcode devc_!R4xc8p9 xxxxxxxx DEVC 11223344 3S DEVC 1000000-2000000 接下来是一个调用应该如何看待,因为我看到这个调用在公司的沙箱环境中取得了成功。 应该是SOAP调用 http://postnl.nl/cif/services/BarcodeWebService/IBarcodeWebService/GenerateBarcode devc_!R4xc8p9 xxxxxxxx 5 28-06-2017 14:15:41 DEVC 11223344 3S DEVC 1000000-2000000 […]

rails通过肥皂基本认证与savon

我正在尝试使用savon gem发送带有基本身份validation的soap请求 我的soap服务器设置了wash_out gem class OrdersController < ApplicationController soap_service namespace: 'sir:WashOut', wsse_username: SIRA[:auth][:username], wsse_password: SIRA[:auth][:password] …. 当我通过savon向soap服务器发出请求时出现错误: @client = Savon.client( wsdl: “http://localhost:3000/orders/wsdl”, soap_header: { ‘Username’ =>SIRA[:auth][:username], ‘Password’ => SIRA[:auth][:password] } ) @response = @client.call(:notify ).to_hash 在最后一个命令我得到一个错误 Savon::SOAPFault: (Server) Missing required UsernameToken

如何设置savon默认超时值

我正在使用savon进行一些api调用,但由于我正在及时出错,需要很长时间才能响应。所以有任何方法可以更改超时的默认值。 我使用savon 0.7.9 ruby​​ 1.8.7和rails -v 2.3.2。

无法在savon调用上设置SOAP标头参数

我正在使用savon 2.2进行SOAP调用。 初始化: client = Savon.client( wsdl: SOAP_WSDL, endpoint: SOAP_URL) 我可以这样做一个SOAP调用,它工作正常: resp = client.call(:login, message: { username: SOAP_USER, password: SOAP_PASSWORD }) 现在我需要进行另一个调用,这需要在SOAP标头中设置一些参数。 从savorb.com上的文档中我发现我应该使用请求方法: response = client.request :get_user_info do soap.header = { :session_id => sid } end 但我收到一个错误,说请求方法不存在: undefined method `request’ for # 我有不同版本的savon或者什么? 我尝试使用“call”而不是“request”,但后来我得到了: ArgumentError – wrong number of arguments (1 for 2): gem) savon-2.2.0/lib/savon/options.rb:35:in […]

Rails – 使用另一个应用程序的SOAP接口

我有一个纯粹的,有效的Rails应用程序。 我现在需要它开始与另一个应用程序( sympa )进行通信。 此应用程序公开了一个SOAP接口 ,因此我尝试使用它是有意义的(命令行界面不完整)。 我应该遵循哪些步骤? 我应该使用什么gem/插件? 有没有人有工作教程/例子? 我或多或少熟悉一般的SOAP概念,但我以前从未使用过SOAP。 我理解REST。

如何在Rails中使用带有xml的SOAP服务(EU增值税号检查)

我想在我的Rails应用程序中添加一个方法,该方法使用EU的VIES系统检查增值税号的有效性: http : //ec.europa.eu/taxation_customs/vies/technicalInformation.html 我已经很熟悉Rails编程了,这里的指令使用xml 。 所以我很难搞清楚这一点。 我应该如何在我的Rails应用程序中包含上述网站上提到的代码? 换句话说,下面的validate_vat(country, vatnumber)方法应该是什么样的,以及如何处理从SOAP服务收到的响应? def vatsubmission @organization = Organization.find(params[:id]) @organization.update_attributes(vat_params) @organization.validate_vat(@organization.country, @organization.vatnumber) if (@organization.vatnumber? && @organization.vatnumber?) # Process response if valid == false @organization.update_attributes(valid_vat: false) flash.now[:danger] = “False VAT number” render … elsif valid == true @organization.update_attributes(valid_vat: true) flash.now[:success] = “VAT number validated” render … else flash.now[:danger] = “VAT […]

试图用Savon构建SOAP请求?

我试图从Ruby on Rails获得一个SOAP服务 – 从SOAP UI我可以很好地完成它,请求XML如下所示: 1 90 -110.5322 35.2108 Additional 如果我将那个确切的XML复制到带有request = %q(XML STRING)到savon的Ruby字符串中并使用该方法然后在Savon中调用以下内容: response = client.call(:get_info, xml: request) 它按预期工作,我得到了我的回应 – 但实际上我想把参数传递给Savon。 到目前为止,我尝试了以下内容: coordinate = { Id: ‘1’, X: -110.5322, Y: 35.2108, QualityIndex: 90 } coordinates = {Coordinates: [coordinate] } coordinateReq = {coordReq: {coordinates: coordinates} } response = client.call(:get_informations_for_coordinates, message: coordinateReq) 这失败了,如果我查看我发送的XML,如下所示: 1 -110.5322 […]

Savon:如何在SOAP请求的哈希体中指定自定义XML?

在SOAP请求中,我需要指定具有不同值的重复键,如下所示: soap.body = {:query => { :fields => { :string => ‘Email’, :string => ‘FirstName’, :string => ‘LastName’ } } 使用此哈希,请求将形成为: LastName 最后一个:字符串对。 所以,如果我把: soap.body = {:query => { :fields => “EmailFirstNameLastName” } 这将导致: <string>Email</string><string>FirstName</string><string>LastName</string> 有没有办法在哈希中得到这个?: EmailFirstNameLastName 注意:我使用的是Ruby 1.8.7。

我如何使用Ruby的SOAP :: Attachment类?

所以我正在为SOAP Web服务编写一个Ruby客户端,我已经想出了如何调用一个简单的方法: # WebServiceClient.rb require ‘soap/wsdlDriver’ wsdl_url = ‘http://urlmadness?wsdl’ service = SOAP::WSDLDriverFactory.new(wsdl_url).create_rpc_driver result = service.simpleMethod(:sayHello => ‘Hello’) p result.return 现在我需要编写一些可以调用Web方法的东西,该方法期望附加文件作为SOAP MIME附件(SwA)。 我查看了Ruby的SOAP::Attachment类,但我似乎无法弄清楚如何使用它,我无法在任何地方找到任何示例。 有人知道如何使用它来为方法调用添加MIME附件吗? 谢谢, 亚历克斯

Ruby如何知道要救援什么?

我正在使用eurovat gem检查增值税号。 Eurovat.check_vat_number vat_number 如果我从irb运行,有时我会收到: SOAP::FaultError: MS_UNAVAILABLE from (“来自”之后没有任何内容) 我想写一个begin rescue块来拯救这些错误,但我怎么知道要救援什么? 我试过救援SOAP::FaultError但是没有用