Ruby 打开Uri备选方案-从网站获取响应

Ruby 打开Uri备选方案-从网站获取响应,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,以下代码适用于Ruby 1.9.3p-551 require "open-uri" res = open("http://demo.imqs.co.za/version").read p res => {"buildNumber": 2496, "buildDate": "2015-09-29 11:18:02 +0200", "timestamp": 1443639212 } 在任何高于1.9.3的Ruby版本中,我都会遇到以下错误: from /Users/imac/.rbenv

以下代码适用于Ruby 1.9.3p-551

require "open-uri"

res = open("http://demo.imqs.co.za/version").read

p res => {"buildNumber": 2496, "buildDate": "2015-09-29 11:18:02 +0200", "timestamp": 1443639212 }
在任何高于1.9.3的Ruby版本中,我都会遇到以下错误:

from /Users/imac/.rbenv/versions/2.1.0/lib/ruby/2.1.0/net/http/response.rb:357:in `finish': incorrect header check (Zlib::DataError)
我需要使用更高版本,因为这将在Rails 4应用程序中使用。
有其他选择吗

结果表明默认情况下不接受gzip编码。至少我是这么想的。 下面的工作

res = open("http://demo.imqs.co.za/version", "Accept-Encoding" => "plain").read

有趣的是,这是如何从Ruby 2.0.0+转变为另一个简洁的解决方案的

require 'rest-client'

url = "http://demo.imqs.co.za/version"

def get_response(url)
  begin
    return RestClient.get(url, {:accept => :json})
  rescue RestClient::GatewayTimeout 
    "GatewayTimeout"
  rescue RestClient::RequestTimeout
    "RequestTimeout"
  rescue SocketError
    "SocketError"
  end
end   

p get_response(url)

# => "{\"buildNumber\": 2535, \"buildDate\": \"2015-09-30 17:41:42 +0200\", \"timestamp\": 1444085042 }"