#! /usr/bin/env python import getopt, socket, sys try: (opts, args) = getopt.getopt(sys.argv[1:], 'h:p:s', ( 'host=', 'port=', 'statusonly', 'help')) except getopt.GetoptError, e: print >>sys.stderr, sys.argv[0] + ': ' + str(e) sys.exit(1) if args: print sys.argv[0] + ': Usage error; try --help.' sys.exit(1) hostname, portnum, verbose = 'localhost', 80, 1 for opt, val in opts: if opt in [ '--help' ]: print '''Options include: --host HOST (-h HOST) Name of server host --port PORT (-p PORT) Port server is listening on --statusonly (-s) Do not output reply packets; just status code Default is -h%s -p%d -t%s''' % \ (hostname, portnum, ','.join([str(x) for x in tests])) sys.exit(0) if opt in [ '-h', '--host' ]: hostname = val elif opt in [ '-p', '--port' ]: portnum = int(val) elif opt in [ '-s', '--statusonly' ]: verbose = 0 IN = ''' ''' IN = ''' 1 2 ''' s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((hostname, portnum)) f = s.makefile('r+') f.write('POST /cgi-bin/x HTTP/1.0\r\n') f.write('Content-type: text/xml; charset="utf-8"\r\n') f.write('Content-Length: %d\r\n\r\n' % len(IN)) f.write(IN) f.flush() status = f.readline() print status, while 1: l = f.readline() if l == '': break if verbose: print l, f.close()