做的项目中,使用python写了一个服务器,主要是利用SimpleHTTPServer.SimpleHTTPRequestHandler来处理。
其中的do_POST方法是自己重写的:
1 import SimpleHTTPServer 2 import SocketServer 3 import cgi 4 5 host = '' 6 port = 8080 7 8 9 class simpleHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): 10 def do_POST(self): 11 try: 12 13 form = cgi.FieldStorage( 14 fp = self.rfile, 15 headers = self.headers, 16 environ = { 17 'REQUEST_METHOD':'POST', 18 'CONTENT_TYPE':self.headers.getheader('current-type') 19 } 20 ) 21 22 23 print form 24 25 26 except IOError: 27 self.send_error(404, ' POST error'); 28 29 30 conn = SocketServer.TCPServer((host, port), simpleHandler) 31 32 33 print 'start server at port:', port 34 35 conn.serve_forever()
项目主要实现的是:
可以通过这个python服务器访问index.html文件,显示页面,上面有视频在播放,可以通过控制play , pause等button来操作视频的播放,html中引用了js文件去处理这些play,pause等event,主要通过addEventListener,其中也定义了
xmlHTTPRequest: xmlHttp = new XMLHttpRequest();
并且,用了
1 xmlHttp.open('POST', '192.168.0.61:8080', true); 2 xmlHttp.onreadystatechange = state_change; 3 xmlHttp.setRequestHeader('content_type', 'application/x-www-form-urlencoded'); 4 xmlHttp.send(str);
其中str是我想要发送给服务器的字符串,使用这种方法,在python服务器端可以收到消息,print form 可以显示如下:
start server at port: 8080 FieldStorage(None, None, 'loadstart event happend') SH-DEV-JFAN - - [25/Mar/2013 13:55:33] code 404, message File not found SH-DEV-JFAN - - [25/Mar/2013 13:55:33] "GET /favicon.ico HTTP/1.1" 404 - FieldStorage(None, None, 'play event happend') FieldStorage(None, None, 'playing event happend') FieldStorage(None, None, 'pause event happend')
我的问题是,如何只显示play event happend, 而不是整个的显示FieldStorage(....'Play event happend')
这个python服务器是否还有更改的地方,或者是比较大的错漏?
刚刚学习,有很多不懂的地方,请大家帮手教育。。。。
这个怎么解决的?