2014-01-29 87 views
1

根据Net::HTTP文档的压缩部分,压缩响应会自动解压缩。但是,当我尝试使用不同服务器的多个JSON请求时,我没有得到自动解压缩。Net :: HTTP不会自动解压缩压缩响应

require 'net/http' 
uri = URI("http://yourhost.com") 
http = Net::HTTP.new(uri.host, uri.port) 
res = http.get(uri.request_uri) 
+0

正在返回什么类型的压缩? [Net :: HTTP不会自动处理所有内容](http://ruby-doc.org/stdlib-2.1.0/libdoc/net/http/rdoc/Net/HTTP.html#method-i-get)。 –

+0

返回的内容是压缩的内容。 – dknight

+0

您可以测试http://vimeo.com/api/oembed.json?url=http://vimeo.com/69655841&width=150 – dknight

回答

0

该问题是由我的包中的right_http_connection宝石引起的。以下给出了IRB中适当的解码响应。

require 'net/http' 
require 'uri' 
uri = URI("http://vimeo.com/api/oembed.json?url=http://vimeo.com/69655841&width=150") 
http = Net::HTTP.new(uri.host, uri.port) 
res = http.get(uri.request_uri) 
res.body 

但是,要求right_http_connection开始给予gzip的回应。

require 'net/http' 
require 'uri' 
require 'right_http_connection' 
uri = URI("http://vimeo.com/api/oembed.json?url=http://vimeo.com/69655841&width=150") 
http = Net::HTTP.new(uri.host, uri.port) 
res = http.get(uri.request_uri) 
res.body 

这是一个已知的问题和它的修复已是merged但包含的修补程序更新版本的宝石还没有被释放。