我能够从here
启动一个简单的python服务器import SimpleHTTPServer
import SocketServer
PORT = 8000
Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", PORT), Handler)
print "serving at port", PORT
httpd.serve_forever()
我能够使用curl
命令,看到它确实响应了我的目录列表。我能够在运行的服务器上看到200 GET消息,但没有其他信息。但是,有没有办法真正看到请求中的数据进入服务器并解析它?如果有人要向我的服务器发布一些信息(比如JSON格式),我怎样才能真正看到所有这些数据......甚至是URL?
是否有任何实际构建在上述代码上的示例显示如何处理数据?用例是将某些信息发布到服务器的人。
答案 0 :(得分:1)
当GET
请求进入时(由curl
发送到您的服务器),在后台调用SimpleHTTPRequestHandler.do_GET
。 SimpleHTTPRequestHandler
本身就是BaseHTTPRequestHandler
的子类。
您可以定义自己的SimpleHTTPRequestHandler
子类:
class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET():
# your code here
super(MyHandler, self).do_GET()
httpd = SocketServer.TCPServer(("", PORT), MyHandler)
代替# your code here
,您可以检查由BaseHTTPRequestHandler
定义的属性,例如self.path
并打印它们或随意做任何事情。