-1
我想我已經閱讀了與此主題相關的所有主題,但仍然沒有解決方案。 我使用: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
它是否可以通過腳本工作? –
當我從終端調用腳本時它確實有效。我把代碼放在一個文件echo.rb中。當我運行ruby echo.rb時它會工作... – Jerry
對不起,無法幫助Rails。 –