def get(path, initheader = {}, dest = nil, &block) # :yield: +body_segment+
      res = nil
      request(Get.new(path, initheader)) {|r|
        r.read_body dest, &block
        res = r
      }
      res
    end
Retrieves data from +path+ on the connected-to host which may be an
absolute path String or a URI to extract the path from.

+initheader+ must be a Hash like { 'Accept' => '*/*', ... },
and it defaults to an empty hash.
If +initheader+ doesn't have the key 'accept-encoding', then
a value of "gzip;q=1.0,deflate;q=0.6,identity;q=0.3" is used,
so that gzip compression is used in preference to deflate
compression, which is used in preference to no compression.
Ruby doesn't have libraries to support the compress (Lempel-Ziv)
compression, so that is not supported.  The intent of this is
to reduce bandwidth by default.   If this routine sets up
compression, then it does the decompression also, removing
the header as well to prevent confusion.  Otherwise
it leaves the body as it found it.

This method returns a Net::HTTPResponse object.

If called with a block, yields each fragment of the
entity body in turn as a string as it is read from
the socket.  Note that in this case, the returned response
object will *not* contain a (meaningful) body.

+dest+ argument is obsolete.
It still works but you must not use it.

This method never raises an exception.

response = http.get('/index.html')

# using block
File.open('result.txt', 'w') {|f|
http.get('/~foo/') do |str|
f.write str
end
}