我如何使HTTParty忽略SSL?

我正在使用本地服务器来testing应用程序,并从我自己的机器向该服务器发出请求。

testing服务器的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中,可以使用validation选项来禁用SSLvalidation;

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

为了使HTTParty总是跳过SSL证书validation,而不必在每次调用中指定:

 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}") 

如果你还想发送你的证书,使用这个标志:

 verify_peer: false