Skip to content

Instantly share code, notes, and snippets.

@cprice404
Created June 22, 2016 00:46
Show Gist options
  • Save cprice404/75ca19ba9d7691595e2a3da34b1ac86e to your computer and use it in GitHub Desktop.
Save cprice404/75ca19ba9d7691595e2a3da34b1ac86e to your computer and use it in GitHub Desktop.
#!/usr/bin/env python2.7
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
what = ', "what?"' * 1024
whats_per_mb = (1024.0 * 1024.0) / len(what)
#cap = 2 * 1024 * 1024 * 1024
cap_mb = int(argv[2])
n = 0
class GarbageGenerator(BaseHTTPRequestHandler):
def do_POST(self):
global n, cap_mb
self.wfile.write('HTTP/1.1 200 OK\n\n')
self.wfile.write('["what?"')
mb_written = n / whats_per_mb
while mb_written < cap_mb:
stderr.write('%.2fMB written\n' % mb_written)
self.wfile.write(what)
n += 1
mb_written = n / whats_per_mb
self.wfile.write(']')
n = 0
port = int(argv[1])
httpd = HTTPServer(('localhost', port), GarbageGenerator)
print >> stderr, "listening on", port
httpd.serve_forever()
########################################################################
(ns httpcat.core
(:require
[clojure.java.io :as io]
[puppetlabs.http.client.common :as http]
[puppetlabs.http.client.sync :as http-sync])
(:gen-class))
(defn -main
"I don't do a whole lot ... yet."
[port stream-mode & args]
(with-open [client (http-sync/create-client {})]
(let [resp (http/post client
(str "http://localhost:" port)
{:as (keyword stream-mode)
:body "[]"
:headers {"Content-Type" "application/json"}})
_ (binding [*out* *err*] (prn resp))
rdr (io/reader (:body resp))]
(io/copy rdr *out*))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment