def read_body(dest = nil, &block)
    if @read
      raise IOError, "#{self.class}\#read_body called twice" if dest or block
      return @body
    end
    to = procdest(dest, block)
    stream_check
    if @body_exist
      read_body_0 to
      @body = to
    else
      @body = nil
    end
    @read = true

    @body
  end
Gets the entity body returned by the remote HTTP server.

If a block is given, the body is passed to the block, and
the body is provided in fragments, as it is read in from the socket.

Calling this method a second or subsequent time for the same
HTTPResponse object will return the value already read.

http.request_get('/index.html') {|res|
puts res.read_body
}

http.request_get('/index.html') {|res|
p res.read_body.object_id   # 538149362
p res.read_body.object_id   # 538149362
}

# using iterator
http.request_get('/index.html') {|res|
res.read_body do |segment|
print segment
end
}