我有下一个配置:
Net::HTTP.ssl_context_accessor 'ssl_version'
@http = Net::HTTP.new(@url.host, 443)
@http.ssl_version = :SSLv2
@http.use_ssl = true
@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
@http.set_debug_output $stderr
@http.open_timeout = 10
@http.read_timeout = 10
然后我使用@http对象以这种方式生成request_get:
path = "/login.cgi?username=#{@url.user}&password=#{@url.password}"
debug("Making request #{@http.address}")
response = @http.request_get(path)
debug("#{response.body}")
@cookie = response.get_fields('set-cookie').split('; ')[0]
Puppet.debug('Cookie got!')
服务器应该给我一个cookie,但我从调试中获得的唯一输出是
Debug: Making request server.com
opening connection to server.com...
opened
它永远挂在那里(甚至没有提高超时)。
我对ruby很新,而且这个代码已经从其他stackoverflow问题中检索出来了,并且假设有效。
我一直在搜索谷歌,但没有找到类似的东西,任何想法?
答案 0 :(得分:0)
通过post将SSL版本更改为SSLv3和request_get方法解决了问题。