Mercurial > hg > webaudioevaluationtool
comparison python2.py @ 957:96dc339fb382
Python2.py: Python server will now save received XML files and store them to the local folder 'saves'.
author | Nicholas Jillings <nicholas.jillings@eecs.qmul.ac.uk> |
---|---|
date | Tue, 26 May 2015 18:43:30 +0100 |
parents | 263e64586aee |
children | 2dc61bd6494e |
comparison
equal
deleted
inserted
replaced
956:263e64586aee | 957:96dc339fb382 |
---|---|
1 import BaseHTTPServer | 1 import BaseHTTPServer |
2 from os import walk | 2 from os import walk |
3 from os import path | 3 from os import path |
4 import urllib2 | 4 import urllib2 |
5 import pickle | |
6 import datetime | |
7 | |
8 curSaveIndex = 0; | |
9 curFileName = 'test-0.xml' | |
10 while(path.isfile('saves/'+curFileName)): | |
11 curSaveIndex += 1; | |
12 curFileName = 'test-'+str(curSaveIndex)+'.xml' | |
13 | |
14 print curFileName | |
5 | 15 |
6 def send404(s): | 16 def send404(s): |
7 s.send_response(404) | 17 s.send_response(404) |
8 s.send_header("Content-type", "text/html") | 18 s.send_header("Content-type", "text/html") |
9 s.end_headers() | 19 s.end_headers() |
28 s.send_header("Content-Length", size) | 38 s.send_header("Content-Length", size) |
29 s.end_headers() | 39 s.end_headers() |
30 s.wfile.write(fileDump.read()) | 40 s.wfile.write(fileDump.read()) |
31 fileDump.close() | 41 fileDump.close() |
32 | 42 |
43 def saveFile(self): | |
44 global curFileName | |
45 global curSaveIndex | |
46 varLen = int(self.headers['Content-Length']) | |
47 postVars = self.rfile.read(varLen) | |
48 print curFileName | |
49 file = open('saves/'+curFileName,'w') | |
50 curSaveIndex += 1; | |
51 curFileName = 'test-'+str(curSaveIndex)+'.xml' | |
52 print curFileName | |
53 file.write(postVars) | |
54 file.close() | |
55 self.send_response(200) | |
56 self.send_header("Content-type", "text/xml") | |
57 self.end_headers() | |
58 self.wfile.write('<response><state>OK</state><file>saves/'+curFileName+'</file></response>') | |
33 | 59 |
34 class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): | 60 class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler): |
35 def do_HEAD(s): | 61 def do_HEAD(s): |
36 s.send_response(200) | 62 s.send_response(200) |
37 s.send_header("Content-type", "text/html") | 63 s.send_header("Content-type", "text/html") |
44 if (request.path == '/'): | 70 if (request.path == '/'): |
45 request.path = '/index.html' | 71 request.path = '/index.html' |
46 processFile(request) | 72 processFile(request) |
47 else: | 73 else: |
48 send404(request) | 74 send404(request) |
75 def do_POST(request): | |
76 if(request.client_address[0] == "127.0.0.1"): | |
77 if (request.path == "/save"): | |
78 saveFile(request) | |
79 else: | |
80 send404(request) | |
49 | 81 |
50 def run(server_class=BaseHTTPServer.HTTPServer, | 82 def run(server_class=BaseHTTPServer.HTTPServer, |
51 handler_class=MyHandler): | 83 handler_class=MyHandler): |
52 server_address = ('', 8000) | 84 server_address = ('', 8000) |
53 httpd = server_class(server_address, handler_class) | 85 httpd = server_class(server_address, handler_class) |