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
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
     }