Jas*_*nis 50 ruby ssl httparty
我正在使用本地服务器来测试应用程序,并从我自己的机器向该服务器发出请求.
测试服务器的SSL很糟糕,因此HTTParty会抛出错误.根据我的阅读,HTTParty默认情况下应该忽略SSL,但是当我尝试这样做时:
HTTParty.get( "#{ @settings.api_server }#{ url }" ).parsed_response
Run Code Online (Sandbox Code Playgroud)
它抛出此错误:
OpenSSL::SSL::SSLError at /
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
Run Code Online (Sandbox Code Playgroud)
如何让它忽略SSL?
six*_*nes 57
在最新的HTTParty中,您可以使用verify选项禁用SSL验证;
HTTParty.get( "#{ @settings.api_server }#{ url }", :verify => false ).parsed_response
Run Code Online (Sandbox Code Playgroud)
ren*_*ier 27
要使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}")
# ...
Run Code Online (Sandbox Code Playgroud)
当包含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}")
Run Code Online (Sandbox Code Playgroud)
要么
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}")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
22799 次 |
最近记录: |