RubyMine Rails 5 Savon net_http Errno :: ECONNRESET SSL_Connect
问题描述:
我想我已经阅读了与此主题相关的所有主题,但仍然没有解决方案。 我使用:RubyMine Rails 5 Savon net_http Errno :: ECONNRESET SSL_Connect
- 的RubyMine 2017年2月4日
- 红宝石2.4.1
- 的Rails 5.1.0
- 萨翁
当我在我的Rails控制台萨翁连接到服务器,我收到以下错误:
Errno :: ECONNRESET:现有连接被强制关闭远程主机。 - 所以SSL_connect
这是我的代码使用方法:
wsdlUrl = 'https://some.server.com/ws/schema/Echo.wsdl'
licenseKey = '1234567890'
client = Savon.client(wsdl: wsdlUrl,
log:true,
ssl_verify_mode: :none)
response = client.call(:echo,
message: { licenseKey: licenseKey,
value: 'Hello World'})
puts "\nResult \"#{response.body[:echo_response][:value]}\" was returned"
我曾尝试以下操作:
- 下载CA-bundle.crt并添加到我的系统环境(并重新启动
一切) - 更新了我的宝石
- 重新安装Ruby,Rails和RubyMine
- 创建一个新的应用程序,并复制代码
- 补充说: “需要的OpenSSL” 的代码
-
添加以下代码:
require 'open-uri' require 'net/https' module Net class HTTP alias_method :original_use_ssl=, :use_ssl= def use_ssl=(flag) path = (Rails.env == "development") ? "lib/ca-bundle.crt" : "/usr/lib/ssl/certs/ca-certificates.crt" self.ca_file = Rails.root.join(path).to_s self.verify_mode = OpenSSL::SSL::VERIFY_PEER self.original_use_ssl = flag end end end
就没有什么工作了。
奇怪,这是这样的:
当我运行的轨道(发展)控制台,我输入上面的代码,我得到了所以SSL_connect错误。当我在RubyMine中更改一些代码时,不要重新启动控制台,我不会收到任何错误。当我重新运行Rails控制台时,我再次遇到ssl-connect错误。
有谁知道在哪里可以看
编辑1: 我发现,如果我把上面的代码文件(echo.rb)当我打电话文档中的终端,因为它会在工作:红宝石echo.rb
答
对于所有有同样的问题:
第一
$ gem install 'http' (or add gem 'http' to your Gemfile and install)
然后在代码中添加此:
require 'http'
它是否可以通过脚本工作? –
当我从终端调用脚本时它确实有效。我把代码放在一个文件echo.rb中。当我运行ruby echo.rb时它会工作... – Jerry
对不起,无法帮助Rails。 –