1
0
Fork 0
mirror of https://github.com/rest-client/rest-client.git synced 2022-11-09 13:49:40 -05:00

fixed error when response body is nil

This commit is contained in:
Julien Kirch 2010-02-24 18:28:29 +01:00
parent 72673af123
commit 965d20899e
2 changed files with 9 additions and 1 deletions

View file

@ -207,7 +207,9 @@ module RestClient
end end
def self.decode content_encoding, body def self.decode content_encoding, body
if content_encoding == 'gzip' and not body.empty? if (!body) || body.empty?
body
elsif content_encoding == 'gzip'
Zlib::GzipReader.new(StringIO.new(body)).read Zlib::GzipReader.new(StringIO.new(body)).read
elsif content_encoding == 'deflate' elsif content_encoding == 'deflate'
Zlib::Inflate.new.inflate body Zlib::Inflate.new.inflate body

View file

@ -26,10 +26,16 @@ describe RestClient::Request do
end end
describe "compression" do describe "compression" do
it "decodes an uncompressed result body by passing it straight through" do it "decodes an uncompressed result body by passing it straight through" do
RestClient::Request.decode(nil, 'xyz').should == 'xyz' RestClient::Request.decode(nil, 'xyz').should == 'xyz'
end end
it "doesn't fail for nil bodies" do
RestClient::Request.decode('gzip', nil).should be_nil
end
it "decodes a gzip body" do it "decodes a gzip body" do
RestClient::Request.decode('gzip', "\037\213\b\b\006'\252H\000\003t\000\313T\317UH\257\312,HM\341\002\000G\242(\r\v\000\000\000").should == "i'm gziped\n" RestClient::Request.decode('gzip', "\037\213\b\b\006'\252H\000\003t\000\313T\317UH\257\312,HM\341\002\000G\242(\r\v\000\000\000").should == "i'm gziped\n"
end end