Ответ 1
В последнем HTTParty вы можете использовать опцию проверки, чтобы отключить проверку SSL;
HTTParty.get( "#{ @settings.api_server }#{ url }", :verify => false ).parsed_response
Я использую локальный сервер для тестирования приложения и отправки запросов на этот сервер с моей собственной машины.
Протокол тестового сервера SSL плохой, и HTTParty выдает ошибки из-за этого. Из того, что я прочитал, HTTParty должен игнорировать SSL по умолчанию, но когда я пытаюсь сделать это:
HTTParty.get( "#{ @settings.api_server }#{ url }" ).parsed_response
Он выдает эту ошибку:
OpenSSL::SSL::SSLError at /
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Как мне заставить игнорировать SSL?
В последнем HTTParty вы можете использовать опцию проверки, чтобы отключить проверку SSL;
HTTParty.get( "#{ @settings.api_server }#{ url }", :verify => false ).parsed_response
Чтобы HTTParty всегда пропускал проверку сертификата SSL, и не нужно указывать это при каждом вызове:
require 'httparty'
HTTParty::Basement.default_options.update(verify: false)
HTTParty.get("#{@settings.api_ssl_server}#{url1}")
HTTParty.get("#{@settings.api_ssl_server}#{url2}")
HTTParty.get("#{@settings.api_ssl_server}#{url3}")
# ...
Вы также можете сделать это для класса при включении HTTParty в качестве модуля:
require 'httparty'
class Client
include HTTParty
default_options.update(verify: false)
end
Client.get("#{@settings.api_ssl_server}#{url1}")
Client.get("#{@settings.api_ssl_server}#{url2}")
Client.get("#{@settings.api_ssl_server}#{url3}")
Или же
require 'httparty'
module APIHelpers
class Client
include HTTParty
default_options.update(verify: false)
end
end
World(APIHelpers)
Client.get("#{@settings.api_ssl_server}#{url1}")
Client.get("#{@settings.api_ssl_server}#{url2}")
Client.get("#{@settings.api_ssl_server}#{url3}")
Если вы хотите по-прежнему отправлять сертификаты, используйте этот флаг:
verify_peer: false
Это может быть совершенно не по назначению, так как я новичок в Ruby, но это то, что сработало для меня, когда другие решения не
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE