Подтвердить что ты не робот

Как заставить HTTParty игнорировать SSL?

Я использую локальный сервер для тестирования приложения и отправки запросов на этот сервер с моей собственной машины.

Протокол тестового сервера 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?

4b9b3361

Ответ 1

В последнем HTTParty вы можете использовать опцию проверки, чтобы отключить проверку SSL;

HTTParty.get( "#{ @settings.api_server }#{ url }", :verify => false ).parsed_response

Ответ 2

Чтобы 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}")

Ответ 3

Если вы хотите по-прежнему отправлять сертификаты, используйте этот флаг:

verify_peer: false

Ответ 4

Это может быть совершенно не по назначению, так как я новичок в Ruby, но это то, что сработало для меня, когда другие решения не

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE