我想我已经阅读了与此主题相关的所有主题,但仍然没有解决方案。 我正在使用:
当我将我的rails控制台与Savon连接到服务器时,出现以下错误:
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"
我试过跟随:
添加了以下代码:
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
暂时没有任何工作了。
这很奇怪:
当我运行rails(开发)控制台时,我输入上面的代码,我得到了ssl_connect错误。当我在RubyMine中更改一些代码,并且DON重新启动控制台时,我不会收到任何错误。当我重新运行Rails控制台时,我再次收到ssl-connect错误。
有谁知道我在哪里看
编辑1: 我发现如果我把上面的代码放在一个文件(echo.rb)中,当我在终端中调用文件时它将起作用:ruby echo.rb
答案 0 :(得分:0)
对于所有遇到同样问题的人:
第一
$ gem install 'http' (or add gem 'http' to your Gemfile and install)
然后在您的代码中添加:
require 'http'