Ruby Savon代理在脚本中工作,而不是在Rails中

Ruby Savon代理在脚本中工作,而不是在Rails中,ruby,ruby-on-rails-4,proxy,savon,Ruby,Ruby On Rails 4,Proxy,Savon,我正在使用Savon调用SOAP API。我正在访问的API要求调用来自白名单中的IP地址,因此我使用QuotaGard代理 我正在进行的调用在IRB中以一个简单的ruby脚本的形式完美地返回。当我将完全相同的代码放入Rails模型中的方法时,调用超时,因为它不是通过代理IP来的。QuotaGard有一个仪表板,我可以在其中查看通过代理IP的请求,因此我可以确定此调用不会通过 以下是我的ruby脚本代码: require 'savon' ping_request = Savon.client

我正在使用Savon调用SOAP API。我正在访问的API要求调用来自白名单中的IP地址,因此我使用QuotaGard代理

我正在进行的调用在IRB中以一个简单的ruby脚本的形式完美地返回。当我将完全相同的代码放入Rails模型中的方法时,调用超时,因为它不是通过代理IP来的。QuotaGard有一个仪表板,我可以在其中查看通过代理IP的请求,因此我可以确定此调用不会通过

以下是我的ruby脚本代码:

require 'savon'

ping_request = Savon.client do
    wsdl "http://xx.xxx.xxx.xx:8080/svbase4api/Ping?wsdl"
    proxy "http://xxxxxxxxxxx:xxxxxxxxx@us-east-1-static-brooks.quotaguard.com:9293"
end

response = ping_request.call(:ping, message: {message: "oogly boogly"})

puts response.to_hash[:ping_response][:return]
puts语句正是我想要的。它把“保存的ping消息”放在boogly-boogly中

这是我的Rails模型:

class Debitcard < ActiveRecord::Base

  def self.ping
    ping_request = Savon.client do
        wsdl "http://xx.xxx.xxx.xx:8080/svbase4api/Ping?wsdl"
        proxy "http://xxxxxxxxxxx:xxxxxxxxx@us-east-1-static-brooks.quotaguard.com:9293"
    end

    response = ping_request.call(:ping, message: {message: "oogly boogly"})

    puts response.to_hash[:ping_response][:return]

    @ping_response = response.to_hash[:ping_response][:return]
  end

end
classdebitcard
这是rails服务器中的结果,我按下一个按钮,该按钮将发布到调用ping方法的控制器操作:

D、 [2014-10-23T18:38:08.587540#2200]调试--:HTTPI获取请求到 xx.xxx.xxx.xx(net_http)在75228ms内完成500个内部服务器错误

Errno::ETIMEDOUT(操作超时-连接(2)):


有人能照一下这个吗?谢谢

这最终是我安装Savon的一个问题。在卸载并重新安装了Savon gem的最新稳定版本后,我又开始工作了!