condure 1.10.0

HTTP/WebSocket connection manager
Documentation
import sys
import uuid
import tnetstring
import zmq

if len(sys.argv) < 2:
    print('usage: {} [url]'.format(sys.argv[0]))
    sys.exit(1)

ctx = zmq.Context()
sock = ctx.socket(zmq.REQ)
sock.connect('ipc://server')

req = {
    b'method': b'GET',
    b'uri': sys.argv[1].encode('utf-8'),
    #b'follow-redirects': True,
    #b'ignore-tls-errors': True,
}

sock.send(b'T' + tnetstring.dumps(req))

resp = tnetstring.loads(sock.recv()[1:])
if b'type' in resp and resp[b'type'] == b'error':
    print('error: {}'.format(resp[b'condition']))
    sys.exit(1)

print('code={} reason=[{}]'.format(resp[b'code'], resp[b'reason']))
for h in resp[b'headers']:
    print('{}: {}'.format(h[0], h[1]))

if b'body' in resp:
    print('\n{}'.format(resp[b'body']))
else:
    print('\n')