基于Python的HttpServer
来源:互联网 发布:什么是网络通信 编辑:程序博客网 时间:2024/04/27 18:32
最近需要做一个http的服务器,发现python提供的simplehttpserver用起来真的很方便,几十行代码就可以实现一个每一个请求都在一个线程里处理的简单的http服务器。
服务器代码如下:
#!/usr/bin/python#coding=utf8import SimpleHTTPServerimport loggingimport urlparse,urllibfrom ThreadingServer import ThreadingSimpleServerPORT_NUMBER = 8080IP = '127.0.0.1'class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): logging.warning("======= GET STARTED =======") logging.warning(self.headers) SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self) def do_POST(self): logging.warning("======= POST STARTED =======") # headers from client logging.warning(self.headers) logging.warning("======= POST VALUES =======") data = self.rfile.read(int(self.headers['Content-Length'])) data = dict(urlparse.parse_qsl(data)) result = Exec(eval(data['@param1']), eval(data['@param2']))# result to client params = urllib.urlencode({'@resultcode': 0, '@result': result}) self.wfile.write(params)def Exec(path1, path2): return "path3"def Main(): server = ThreadingSimpleServer((IP, PORT_NUMBER), MyHandler) print 'Started httpserver on port ' , PORT_NUMBER # listen forever server.serve_forever()if __name__ == "__main__": Main()客户端代码:
#!/usr/bin/python#coding=utf8import httplib, urllibimport urlparseurl = "127.0.0.1:8080"def RequestSolve(param1, param2): params = urllib.urlencode({'@param1': param1, '@param2': param2}) headers = {} # connection conn = httplib.HTTPConnection(url) # request conn.request("POST", "", params, headers) # response response = conn.getresponse() # result result = response.read(); return dict(urlparse.parse_qsl(result))def GetLargeArray(): result = []; for i in range(100): line = [i, i, i, i] result.append(line) return result;if __name__ == "__main__": param1 = GetLargeArray(); param2 = GetLargeArray(); print "start request" result = RequestSolve(param1, param2) print result['@resultcode'], result['@result']
0 0
- 基于Python的HttpServer
- 基于JDK HttpServer的RESTEasy
- 基于JDK HttpServer的RESTEasy
- python HTTPServer
- python实例32[简单的HttpServer]
- python实例32[简单的HttpServer]
- 基于Netty4的HttpServer和HttpClient的简单实现
- 基于Netty4的HttpServer和HttpClient的简单实现
- 基于Netty4的HttpServer和HttpClient的简单实现
- 基于Netty4的HttpServer和HttpClient的简单实现
- 基于Netty4的HttpServer和HttpClient的简单实现
- 基于Netty4的HttpServer和HttpClient的简单实现
- 基于Netty4的HttpServer和HttpClient的简单实现
- Python搭建HttpServer
- python编写简易HttpServer
- python 创建httpserver
- python快速搭建HttpServer
- python httpServer 传输图片
- 3-15
- Java垃圾回收机制
- JDBC中Statement接口提供的execute、executeQuery和executeUpdate之间的区别
- Spring技术内幕:Spring AOP的实现原理(二)
- Oracle删除所有表
- 基于Python的HttpServer
- Java多线程内存可见性实现 synchronized (java 学习笔记)
- [leetcode][javascript]Reverse Bits
- poj 1003 Hangover
- 黑马程序员--js如何实现继承(js实现继承的五种方式)
- 求一个数的立方根
- 每日一记录
- IOS UILabel的常用属性
- Character set 'utf-8' is not a compiled character set and is not specifie