-def printResult(res)
- res.each_capitalized do |key, value|
- print "#{key}: #{value}\r\n"
+def do_proxy(req, host, port, use_ssl, filename, output_dir)
+ # Make the request
+ http = Net::HTTP.new(host, port)
+ http.use_ssl = use_ssl
+ res = http.request req do |res|
+
+ # Tweak the headers a little
+ res.delete("transfer-encoding")
+ res.delete("transfer-length")
+ res["connection"] = "close"
+
+ if res.code != "200"
+ res["Status"] = "#{res.code} #{res.message}"
+ end
+ res.each_capitalized_name do |key|
+ res.get_fields(key).each do |value|
+ print "#{key}: #{value}\r\n"
+ end
+ end
+ print "\r\n"
+
+ out = nil
+ if output_dir
+ out = File.open("#{output_dir}/#{filename}", 'w')
+ end
+ res.read_body do |chunk|
+ print chunk
+ if out
+ out.write chunk
+ end
+ end