我正在尝试在 https url 上使用 wsdl。参考如何告诉 Ruby 的 OpenSSL 库忽略自签名证书错误?
当我尝试这个时:
... OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE ::SOAP::WSDLDriverFactory.new(SERVICE_URL).create_rpc_driver ...
我收到此错误:
ReportsController#wsdlCaller 中的语法错误
/rails-root/app/controllers/reports_controller.rb:220:动态常量赋值... = OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE::SO...
我该如何解决这个问题?
谢谢!
好的,所以我将语法更改为
const_set(OpenSSL::SSL::VERIFY_PEER,OpenSSL::SSL::VERIFY_NONE)
我解决了动态常量赋值错误。这可能是因为我试图为方法中的常量赋值。
我现在遇到了一个新错误:未初始化的常量 OpenSSL::SSL::VERIFY_PEER。有谁知道为什么会发生这种情况?
救命!谢谢。
尝试以下禁用证书验证:
require 'httpclient'
client = HTTPClient.new
client.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE
否则,您可以尝试更新您的证书(下面以 Macos 为例): $ 酿造升级红宝石 $ 酿造更新--系统 $ gem 更新 httpclient $brew安装openssl $brew 链接 openssl --force