Вы могли попытаться просить, чтобы установленный пользователь Панели запуска добавил их, или если можно кодировать, получить доступ к ответвлению Базара, соответствующему этому коду, и предложить изменение там. Вы, возможно, должны присоединиться к соответствующей группе сначала, но Вы можете предлагать код без состава группы. Кто-то должен будет фиксировать его для Вас, все же.
Приведенный выше метод не сработал для меня.
Я продолжал получать ошибку неправильной проверки заголовка (Zlib :: DataError)
. По-видимому, предполагается, что у вас есть заголовок по умолчанию, что может быть не всегда.
Я реализовал следующую работу:
require 'zlib'
require 'stringio'
gz = Zlib::GzipReader.new(StringIO.new(resp.body.to_s))
uncompressed_string = gz.read
Вам понадобится Zlib :: Inflate для распаковки строки и Zlib :: Deflate для сжатия
def inflate(string)
zstream = Zlib::Inflate.new
buf = zstream.inflate(string)
zstream.finish
zstream.close
buf
end
Zlib по умолчанию предполагает, что ваши сжатые данные содержат заголовок. Если ваши данные НЕ содержат заголовок, произойдет сбой, вызвав Zlib :: DataError.
Вы можете указать Zlib предположить, что данные не имеют заголовка, используя следующий обходной путь:
def inflate(string)
zstream = Zlib::Inflate.new(-Zlib::MAX_WBITS)
buf = zstream.inflate(string)
zstream.finish
zstream.close
buf
end
Используя (-Zlib::MAX_WBITS)
, я получил ERROR: invalid code lengths set
и ERROR: invalid block type
Единственное, что работает и для меня.
Zlib::GzipReader.new(StringIO.new(response_body)).read