tests/get-with-headers.py
author Vadim Gelfer <vadim.gelfer@gmail.com>
Fri, 14 Jul 2006 11:17:22 -0700
changeset 2612 ffb895f16925
parent 2532 84655f721f39
permissions -rwxr-xr-x
add support for streaming clone. existing clone code uses pull to get changes from remote repo. is very slow, uses lots of memory and cpu. new clone code has server write file data straight to client, client writes file data straight to disk. memory and cpu used are very low, clone is much faster over lan. new client can still clone with pull, can still clone from older servers. new server can still serve older clients.

#!/usr/bin/env python

__doc__ = """This does HTTP get requests given a host:port and path and returns
a subset of the headers plus the body of the result."""

import httplib, sys
headers = [h.lower() for h in sys.argv[3:]]
conn = httplib.HTTPConnection(sys.argv[1])
conn.request("GET", sys.argv[2])
response = conn.getresponse()
print response.status, response.reason
for h in headers:
    if response.getheader(h, None) is not None:
        print "%s: %s" % (h, response.getheader(h))
print
sys.stdout.write(response.read())