true Net::HTTP::HAVE_Z-6ren">
gpt4 book ai didi

Ruby Net::HTTP 不解码 gzip?

转载 作者:数据小太阳 更新时间:2023-10-29 07:20:52 25 4
gpt4 key购买 nike

我有安装了 zlib 的 ruby-1.9.3-p327localhost:80是nginx简单测试页面。

require "net/http"
=> true
Net::HTTP::HAVE_ZLIB
=> true

res = Net::HTTP.start("localhost", "80") do |http|
req = Net::HTTP::Get.new "/"
req["accept-encoding"] = "gzip"
http.request req
end
=> #<Net::HTTPOK 200 OK readbody=true>

res.get_fields "content-encoding"
=> ["gzip"]
res.body
=> "\x1F\x8B\b\x00\x00\x00\x00\x00\x00\x03\xEC\xBDi..."

正文未解码。为什么?

最佳答案

对于任何在 ruby​​ 1.9 上运行的代码有问题而无法升级到 ruby​​ 2.0 的人,只需将该代码包含到您的项目中即可。

module HTTPResponseDecodeContentOverride
def initialize(h,c,m)
super(h,c,m)
@decode_content = true
end
def body
res = super
if self['content-length']
self['content-length']= res.bytesize
end
res
end
end
module Net
class HTTPResponse
prepend HTTPResponseDecodeContentOverride
end
end

关于Ruby Net::HTTP 不解码 gzip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com