# File lib/httpclient/session.rb, line 641
    def get_body(&block)
      begin
        read_header if @state == :META
        return nil if @state != :DATA
        if @gzipped and @transparent_gzip_decompression
          # zlib itself has a functionality to decompress gzip stream.
          # - zlib 1.2.5 Manual
          #   http://www.zlib.net/manual.html#Advanced
          # > windowBits can also be greater than 15 for optional gzip decoding. Add 32 to
          # > windowBits to enable zlib and gzip decoding with automatic header detection,
          # > or add 16 to decode only the gzip format
          inflate_stream = Zlib::Inflate.new(Zlib::MAX_WBITS + 32)
          original_block = block
          block = Proc.new { |buf|
            original_block.call(inflate_stream.inflate(buf))
          }
        end
        if @chunked
          read_body_chunked(&block)
        elsif @content_length
          read_body_length(&block)
        else
          read_body_rest(&block)
        end
      rescue
        close
        raise
      end
      if eof?
        if @next_connection
          @state = :WAIT
        else
          close
        end
      end
      nil
    end